rhosocial-activerecord · v1.0 · Apache 2.0
Python ORM
重新设计
从类型开始。
用 Python 原生类型注解定义模型。链式查询透明生成 SQL。
同步与异步,同一套 API。
demo.py — rhosocial-activerecord
live
class User(ActiveRecord):
__table_name__ = "users"
id: Optional[int] = None
name: str
email: str
age: int = 0 # fluent query builder
results = (
User.query()
.where(User.c.age >= 18)
.where(User.c.name.like("%alice%"))
.order_by(User.c.name)
.limit(10)
.all()
)
SELECT u.id,
u.name,
u.email,
u.age FROM users u WHERE u.age >= ? AND u.name LIKE ? ORDER BY u.name ASC LIMIT 10
PARAMS: (18, "%alice%")
idnameemailage
→ 3Alicealice@example.org24
→ 7alice_devadev@example.org31
2 rows in 0.8ms