如何在sqlalchemy中调用异常?

2024-04-20 10:11:35 发布

您现在位置:Python中文网/ 问答频道 /正文

如果找不到行,如何为case调用异常:

analys = Analyzes.query.filter_by(id=id).first()

我试图这样做:

try:
   analys = Analyzes.query.filter_by(id=id).first()
except NoResultFound as e:
     return Response(str(e), status=400, mimetype='application/json')

它对我不起作用。。。你知道吗

我也试过这个:

if analys.count() == 0:
   raise NameError('Protocol was not found!')

Tags: idbyreturnresponseasfilterqueryfirst
1条回答
网友
1楼 · 发布于 2024-04-20 10:11:35

如果.first()不返回任何内容,analys将是None,您可以将其视为False,因此:

analys = Analyzes.query.filter_by(id=id).first()
if not analys:
    # We didn't get anything
    raise NameError("Protocol was not found")

或者,正如Ilja Everilä提到的,如果您只期望一个结果,那么您可以使用.one。你知道吗

from sqlalchemy.orm.exc import NoResultFound

try:
    analys = Analyzes.query.filter_by(id=id).one()
except NoResultFound:
    print('Oh Noes!')

相关问题 更多 >