Python/Peewee
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.