Здесь есть несколько вопросов. Во-первых, в вашем html вы не установили атрибут method
для формы. Это означает, что по умолчанию GET
, поэтому форма не проверяется. Это можно изменить следующим образом:
<form action="{{ url_for('register') }}" method='POST'>
Кстати, поскольку представление, загружающее форму, совпадает с целью, вы можете не указывать атрибут действия, давая нам:
<form method='POST'>
Во-вторых, в вашем классе у вас есть пара проблем с полем confirm_password
. Во-первых, у вас есть опечатка в PasswordField('confirm passord'
. Во-вторых, валидатор EqualTo()
ожидает строку, а не поле. Нам нужно полностью изменить эту строку на:
confirm_password = PasswordField('confirm password', validators=[InputRequired(), Length(min=6), EqualTo('password')])
Наконец, в ваших flask нам нужно принять POST
запросов к представлению. Это можно сделать, изменив @app.route()
:
@app.route('/register', methods=['POST', 'GET'])
После внесения этих изменений форма должна работать как положено.