我用 sqlmodel ,使用 pydantic 的模型更方便
我很喜欢写起来像写 sql 的方式,只要会写 sql 就会用
写起来就是
select(func.IF(,,).label('a'), func.sum(), func.count()).select_from(A).join().outerjoin().where().group_by()
update(A).where(and_(
A.id == 1, A.status == 1)).values()
delete(A).where(or_(A.status == 0, col(A.b).is_(None)))
也可以
a = await session.get(A, 1)
a.b = c
await session.commit()
或者
a = A()
session.add(a)
await session.commit()
缺点是 sqlalchemy 每次查询都会开事务,我还配置不来不开事务,曲线救国自己封装了 asyncmy 一起用