Torolàlana Peewee ORM: Endri-javatra Fototra sy Mandroso

hanova

Peewee ORM dia ORM kely sy mora ampiasaina ho an'ny Python, izay manamora ny fifandraisana amin'ny tahiry amin'ny alalan'ny modely Python. Ity cheatsheet ity dia manome topi-maso fohy momba ny endri-javatra fototra sy mandroso amin'ny Peewee ORM.

Fomba fototra amin'ny Peewee ORM

hanova
  • Fametrahana sy Fampiasana ny Peewee :

Mba hampiasana Peewee ORM dia mila mametraka azy aloha ianao:

pip install peewee
  • Famoronana Firafitry ny Tahiry :

Amin'ny Peewee, afaka mamorona firafitry ny tahiry amin'ny alalan'ny modely ianao.

from peewee import *

db = SqliteDatabase('my_database.db')

class BaseModel(Model):
    class Meta:
        database = db

class User(BaseModel):
    name = CharField()
    age = IntegerField()
    email = CharField()

db.connect()
db.create_tables([User])
  • Fametrahana Angona ao amin'ny Tahiry :

Azonao atao ny mametraka angona vaovao ao amin'ny tahiry amin'ny alalan'ny famoronana zavatra avy amin'ny modely.

user = User.create(name='Rakoto', age=30, email='rakoto@example.com')
  • Fikarohana Angona :

Peewee ORM dia manohana ny fikarohana angona amin'ny alalan'ny methods toy ny select().

users = User.select()
for user in users:
    print(user.name, user.age)

rakoto = User.get(User.name == 'Rakoto')
print(rakoto.email)
  • Fanavaozana sy Famafana Angona :

Azonao atao ny manavao na mamafa angona avy amin'ny tahiry amin'ny alalan'ny modely.

Fanavaozana
rakoto = User.get(User.name == 'Rakoto')
rakoto.age = 31
rakoto.save()
Famafana
rakoto.delete_instance()

Endri-javatra Mandroso amin'ny Peewee ORM

hanova
  • Fifandraisana (Relationships) :

Peewee ORM dia manohana ny fifandraisana eo amin'ny modely toy ny ForeignKey sy ny Many-to-Many.

ForeignKey (One-to-Many)
class Address(BaseModel):
    user = ForeignKeyField(User, backref='addresses')
    city = CharField()
    street = CharField()

address = Address.create(user=rakoto, city='Antananarivo', street='Lalana Andrianampoinimerina')
Many-to-Many
class Group(BaseModel):
    name = CharField()

class UserGroup(BaseModel):
    user = ForeignKeyField(User)
    group = ForeignKeyField(Group)

group = Group.create(name='Developers')
user_group = UserGroup.create(user=rakoto, group=group)
  • Transactions :

Peewee ORM dia manohana ny transactions ho an'ny fanavaozana angona miverina.

with db.atomic():
    user = User.create(name='Rabe', age=25, email='rabe@example.com')
    address = Address.create(user=user, city='Toamasina', street='Lalana Ratsimilaho')
  • Queries Mandroso :

Peewee ORM dia manohana queries mandroso toy ny fn sy ny Case.

Fn
from peewee import fn

adult_users = User.select().where(User.age >= 18).order_by(fn.LOWER(User.name))
for user in adult_users:
    print(user.name)
Case
from peewee import Case

age_group = Case(None, (
    (User.age < 18, 'zaza'),
    (User.age < 30, 'tanora'),
    (User.age >= 30, 'olondehibe'),
), 'tsy fantatra')

users = User.select(User.name, age_group.alias('age_group'))
for user in users:
    print(user.name, user.age_group)
  • Mifandray amin'ny tahiry maro :

Peewee ORM dia mamela ny fampiasana tahiry maromaro amin'ny alalan'ny famoronana motera maro.

db1 = SqliteDatabase('database1.db')
db2 = SqliteDatabase('database2.db')

class User(BaseModel):
    name = CharField()
    age = IntegerField()

    class Meta:
        database = db1

class Product(BaseModel):
    name = CharField()
    price = FloatField()

    class Meta:
        database = db2

db1.connect()
db2.connect()
  • Modely namboarina (Custom Models) :

Azonao atao ny mamorona modely namboarina mba hikarakarana endri-javatra manokana.

class TimestampedModel(Model):
    created_at = DateTimeField(default=datetime.datetime.now)
    updated_at = DateTimeField()

    def save(self, *args, **kwargs):
        self.updated_at = datetime.datetime.now()
        return super().save(*args, **kwargs)

    class Meta:
        abstract = True

class Article(TimestampedModel):
    title = CharField()
    content = TextField()

Fehiny

hanova

Peewee ORM dia fitaovana mahery vaika sy kely ho an'ny fitantanana tahiry amin'ny alalan'ny modely Python. Amin'ny alalan'ny fahalalana ireo endri-javatra fototra sy mandroso ireo, dia afaka mamorona rindrambaiko matotra sy manintona ianao amin'ny alalan'ny Peewee ORM, ka manamora ny fitantanana angona sy ny fifandraisana amin'ny tahiry.