跳到主要内容

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