У меня есть код python, который регистрирует ошибку в консоли при невыполнении определенных условий. Я пытаюсь отобразить те же ошибки в браузере, когда необходимые условия не выполняются. Для иллюстрации рассмотрим самую основную идею c функции add_stuff
, которая проверяет, имеют ли входные данные тип int
. В противном случае на экран выводится сообщение об ошибке.
Следующее простое приложение flask и соответствующий файл шаблона работают, а ошибка значения фактически выводится на экран. Но я пытаюсь «красиво распечатать» ошибку, чтобы она не печатала уродливую страницу с ошибкой jinga2, а вместо этого оставалась на той же странице math.html
с ошибкой, выводимой на экран, или возможными перенаправлениями на привлекательную страницу, которая не переполнен трассировками и т.д. c.
from flask import Flask, render_template, request, session, current_app
server = Flask(__name__)
def add_stuff(x,y):
if isinstance(x, int) and isinstance(y, int):
z = x + y
return z
else:
raise ValueError("Not integers")
@server.route('/math')
def foo():
a = 1
b = 15
out = add_stuff(a,b)
return render_template('math.html', out=out)
if __name__ == '__main__':
server.run(debug=True)
Вот файл шаблона
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{{out}}
</body>
</html>