从sqlalchemy获取第一行
我有以下查询:
profiles = session.query(profile.name).filter(and_(profile.email == email, profile.password == password_hash))
如何检查是否有行,如何只返回第一行(如果有匹配项,则只能返回一行)?
回答:
使用 query.one()
得到之一,正是一个结果。在所有其他情况下,它将引发你可以处理的异常:
from sqlalchemy.orm.exc import NoResultFoundfrom sqlalchemy.orm.exc import MultipleResultsFound
try:
user = session.query(User).one()
except MultipleResultsFound, e:
print e
# Deal with it
except NoResultFound, e:
print e
# Deal with that as well
还有query.first()
,它将为你提供可能的第一个结果,而不会引发这些异常。但是,由于你要处理没有结果或超出你的想象的情况,query.one()
因此正是你应该使用的方法。
以上是 从sqlalchemy获取第一行 的全部内容, 来源链接: utcz.com/qa/423043.html