Aus irgendeinem Grund ist im Qiita-Bereich SQLalchemie eine Option (561 Suchanfragen, 161 Tags), aber es gibt andere, oder? Natürlich gab es.
Beide sind Abfragen und zeichnen sich durch eine ganz besondere Beschreibung aus. Auf den ersten Blick weiß ich nicht, welches funktioniert, Python / DB. Bin ich von linq beeinflusst?
coleifer/peewee: a small, expressive orm -- supports postgresql, mysql and sqlite peewee — peewee 3.13.3 documentation
from peewee import *
import datetime
db = SqliteDatabase('my_database.db')
class BaseModel(Model):
class Meta:
database = db
class User(BaseModel):
username = CharField(unique=True)
class Tweet(BaseModel):
user = ForeignKeyField(User, backref='tweets')
message = TextField()
created_date = DateTimeField(default=datetime.datetime.now)
is_published = BooleanField(default=True)
query = (Facility
.select(Facility.facid, Facility.name, Facility.membercost,
Facility.monthlymaintenance)
.where(
(Facility.membercost > 0) &
(Facility.membercost < (Facility.monthlymaintenance / 50))))
Einige draußen
Der sehr charakteristische und verwirrende Teil ist, dass er die Python3-Generatorsyntax direkt in der Abfrage akzeptiert. Wenn Sie die Beziehung n: m definieren, wird ohne Erlaubnis eine Zwischentabelle erstellt.
from pony.orm import *
db = Database()
class MyEntity(db.Entity):
attr1 = Required(str)
select(c for c in Customer if sum(c.orders.price) > 1000)
SELECT "c"."id"
FROM "customer" "c"
LEFT JOIN "order" "order-1"
ON "c"."id" = "order-1"."customer"
GROUP BY "c"."id"
HAVING coalesce(SUM("order-1"."total_price"), 0) > 1000
Recommended Posts