Я пишу приложение Flask и хочу запустить проверки правильности некоторых полей, и только если вставленное значение в поле является целым числом или Нет для продолжения запроса POST.
Поле можетсодержат только целые числа или None
, и если поле равно None
, его следует заменить на 0.
Это мой код:
class Validation():
def __init__(self, param, param_name):
self.param = param
self.param_name = param_name
def check_int(param):
try:
int(param)
return True
except ValueError:
return False
def check(param, param_name):
param = param.strip()
if param == "":
return 0
elif Validation.check_int(param):
return param
else:
flash(f"The {param_name} must be an integer!")
exit()
Проблема заключается в том, что если поле содержиткакая-то строка вызовет функцию exit()
, и моя программа просто остановится.Я просто хочу высветить сообщение о том, что это поле должно быть целым числом на экране без выполнения запроса POST в моем views.py
файле:
if request.method == "POST":
Validation.check(test1, "Test 1 Parameter")
Validation.check(test2, "Test 2 Parameter")
Validation.check(test3, "Test 3 Parameter")
return render_template('test.html', form = form)
[РЕДАКТИРОВАТЬ]: На веб-странице у меня есть: *Поля 1015 *, test2
и test3
, а также кнопка отправки.Поля теста определены в файле forms.py как TextField
и могут быть либо пустыми, либо иметь целое число в качестве значения.Если пользователь вводит число с плавающей запятой или строку, на экране должно отображаться сообщение о том, что ввод недействителен, и после нажатия кнопки «Отправить» запрос на публикацию не должен выполняться.