Python/Peewee
Torolàlana Peewee ORM: Endri-javatra Fototra sy Mandroso
hanovaPeewee 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
hanovaPeewee 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.