Я определил метод validate_date (), который проверяет, имеет ли дата формат YYYY-MM-DD, и если да, то запрос к API может пройти.У меня также есть другая функция validate_params (), которая проверяет, дано ли правильное имя предмету из списка предметов.Оба эти метода вызываются в операторе if, но метод render_template, который используется в случае сбоя, не вызывается
Я рассмотрел большинство похожих вопросов о переполнении стека, но безрезультатно
@app.errorhandler(422)
def validate_date(date_text):
if date_text != datetime.datetime.strptime(date_text, '%Y-%m-%d').strftime('%Y-%m-%d'):
raise ValueError("""Incorrect date given, your date must be in the format YYYY-MM-DD, also make sure the month
does not exceed '12'.""")
date_text = datetime.datetime.strptime(date_text, '%Y-%m-%d')
if date_text.year >= 2019:
return date_text
else:
return render_template('date_error_handler.html'), 422
@app.errorhandler(404)
def validate_params(params):
paramas = ['Phone', 'keys', 'wallet', 'Mouse']
if param not in params:
raise ValueError('Check your telescope name in the url')
else:
return render_template('item_error_handler.html')
def API('/my_api')
request_param_start_date = request.args['start_date']
request_param_end_date = request.args['end_date']
request_param_telescope_name = request.args['params']
if validate_date(request_param_start_date) < validate_date(request_param_end_date) and\
validate_telescope(request_param_telescope_name):
# call the API
Это мой код, но он работает, даже если имя моего параметра неверное.Чего мне не хватает?
Когда 'start_date' или 'end_date' не в правильном формате YYYY-MM-DD или 'params' отсутствует в списке, шаблоны должны отображаться