我正在构建一个使用 Flask-SQLAlchemy 的 Flask Web 应用程序,并且我还在考虑使用 Flask-Login 来处理会话并保护某些视图。
Flask-Login 需要某些方法,我认为这些方法对应用程序的各个部分都很有用(具体来说,is_authenticated()
and is_active()
。然而,在我看到的所有示例中,这些方法只是返回固定的内容。如果我想对数据库进行查询怎么办?例如,如果我想检查该用户是否确实在表中具有条目(我使用 LDAP 登录,因此希望用户即使在表中没有条目也能够登录,虽然我需要看看它们是否在那里)。
但我不知道是否可以从定义表的类中对表本身进行查询?或者我应该将这些函数放在其他地方(即使用户类中的 Flask-login 需要这些方法)?
你可以。通常是Session.object_session http://docs.sqlalchemy.org/en/rel_0_9/orm/session.html#sqlalchemy.orm.session.Session.object_session是获取会话并执行查询的好方法:
class MyModel(Base):
__tablename__ = u'model_table'
id = Column(Integer, primary_key=True)
# ...
def my_method(self):
session = Session.object_session(self)
qry = session.query(...).filter(...)
# ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)