Я часто использую в своих проектах комбинацию колба + gunicorn + nginx. Для своих форм я использую другой подход:
form.py :
from wtforms import StringField, SubmitField, IntegerField
from wtforms.validators import DataRequired, Optional
class IdentityForm(FlaskForm):
age = IntegerField("Type your age", validators=[Optional()])
name = StringField("Type your name*", validators=[DataRequired()])
submit = SubmitField("Submit")
page.html
<form action="" method="post" novalidate>
{{ form.hidden_tag() }}
{{ form.age.label }}<br>
{{ form.age() }}
{{ form.name.label }}<br>
{{ form.name() }}
{{ form.submit() }}
</form>
В этом небольшом примере интересующая нас часть - это аргумент form.hidden_tag()
на стороне HTML. Этот аргумент генерирует скрытое поле, включающее маркер, который используется для защиты формы от атак CSRF. Чтобы это работало, необходимо определить переменную SECRET_KEY
в конфигурациях колб:
SECRET_KEY = os.environ.get('SECRET_KEY') or 'do-not-get-tired-youll-never-find'
SECRET_KEY
- это криптографический ключ, который позволяет генерировать подписи или токены. FLASK_WTF
используйте его для защиты форм от CSRF-атак.
И это все. FLASK_WTF
позаботится обо всем остальном
Чтобы узнать больше, взгляните на this