Python 在SQLAlchemy中查找一个项目的最佳实践
这些选项中有一个比另一个好吗?有这样做的最佳实践吗?请注意,我有兴趣知道什么是最佳实践,可能不是这些。第一,捕捉异常并在那里做些什么?获取None对象并使用if语句处理是否更好?有更好的选择吗 选择1 session=self.session 尝试: user=session.queryUser.filterUser.id==user\u id.one 返回用户 除Noresults外,发现为e: 会话.回滚 在这里,我实际上正在处理这个问题,并返回一个404未找到 未找到self.handle\u 除SQLAlchemyError作为e外: self.handle\u内部错误 最后: session.close 选择2 session=self.session 尝试: user=session.queryUser.filterUser.id==object\u id.one\u或\u none 如果用户为无: 在这里,我实际上正在处理这个问题,并返回一个404未找到 未找到self.handle\u 其他: 返回用户 除SQLAlchemyError作为e外: self.handle\u内部错误 最后: session.closePython 在SQLAlchemy中查找一个项目的最佳实践,python,rest,sqlalchemy,Python,Rest,Sqlalchemy,这些选项中有一个比另一个好吗?有这样做的最佳实践吗?请注意,我有兴趣知道什么是最佳实践,可能不是这些。第一,捕捉异常并在那里做些什么?获取None对象并使用if语句处理是否更好?有更好的选择吗 选择1 session=self.session 尝试: user=session.queryUser.filterUser.id==user\u id.one 返回用户 除Noresults外,发现为e: 会话.回滚 在这里,我实际上正在处理这个问题,并返回一个404未找到 未找到self.handle
谢谢没有这样的最佳实践。以下所有函数抛出异常的方式都不同。这真的取决于需求。您可以使用: 其中一个将为您提供唯一的项,但会为具有零个或多个结果的查询引发异常 first将返回第一个结果,如果没有结果,则返回None 只有当查询有多个结果时,一个\u或\u none才会引发异常。否则它将返回单个结果,如果没有结果,则返回None
所以,选择你想要的,然后使用正确的。@Nahuel请告诉我答案是否有用?