Я пытался выяснить, как выяснить, было ли что-то найдено моим вызовом фильтра 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))
Я думал, что должен быть лучший способ, я думал, что фильтр выдает исключениеесли ничего не найдено, я попробовал (в оболочке):
try:
ld=LunchDay.query.filter(and_(func.DATE(LunchDay.timestamp == datetime.date.today()), LunchDay.status==1))
#do stuff with results
except sqlalchemy.orm.exc.NoResultFound:
#SHOW THE ERROR
, но, похоже, никогда не выдает ошибку, когда я знаю, что ничего не было возвращено?Моя логика полностью запуталась в этом?Является ли «двойная проверка» предпочтительным способом?или я не использую право исключения?