我试图弄清楚如何确定我的 sqlalchemy 过滤器调用是否找到了某些东西,以了解我是否应该迭代结果。我能弄清楚如何做到这一点的唯一另一种方法是先调用:ld = ld=LunchDay.query.filter(and_(func.DATE(LunchDay.timestamp == datetime.date.today()), LunchDay.status==1)).first()那么如果 ld 是 None 什么也没有找到。但如果是这种情况,我无法遍历所有找到的内容,因此我必须再次调用:ld = ld=LunchDay.query.filter(and_(func.DATE(LunchDay.timestamp == datetime.date.today()), LunchDay.status==1))我认为必须有更好的方法,我认为如果没有找到任何东西,过滤器会抛出异常,所以我确实尝试了这个(在 shell 中):try: ld=LunchDay.query.filter(and_(func.DATE(LunchDay.timestamp == datetime.date.today()), LunchDay.status==1)) #do stuff with resultsexcept sqlalchemy.orm.exc.NoResultFound: #SHOW THE ERROR但是当我知道没有返回任何内容时,它似乎永远不会出错?我的逻辑完全混乱了吗?“双重检查”是首选方式吗?还是我没有使用异常?
添加回答
举报
0/150
提交
取消