QueryGetter
类描述器源码
class AnyClass(sa.orm.DeclarativeBase):
query = QueryGetter()
val: sa.orm.Query[AnyClass] = AnyClass.query
query
属性的访问器。
按照以下方式使用该描述器:
class Base(sa.orm.DeclarativeBase):
query = QueryGetter()
class NewModel(Base): ...
它模拟了flask_sqlalchemy
的行为。使用
NewModel.query.filter(...).all()
和以下做法等价
db.session.query(NewModel).filter(...).all()
注意
设置了query
描述器之后,用户只能在Flask应用上下文的范围内调用它。否则,将会抛出RuntimeError
。
别名
该类可以按以下方式之一获取
import flask_sqlalchemy_compat as fsc
fsc.QueryGetter
fsc.utilities.QueryGetter