Код следующим образом: < /p>
wtf.py:
from flask import Flask, render_template, redirect, url_for, request, flash
from forms import MyForm
from flask_wtf import CSRFProtect
app = Flask(__name__)
app.config['SECRET_KEY'] = 'KERNEL?::(65535)/TCP.SEC'
csrf = CSRFProtect(app)
@app.route('/home', methods=['GET','POST'])
def home():
form = MyForm()#Se crea una instancia de la clase de formulario.
if form.validate_on_submit():
return 'User: {form.user.data}
Password: {form.password.data}
'
print(request.method)
print(form.validate_on_submit())
return render_template('wtf.html', form=form)
@app.route('/profile', methods=['GET', 'POST'])
def profile():
if request.method == 'POST':
username = request.form.get('name')
password = request.form.get('password')
return f'Username: {username}
Password: {password}'
else:
return 'Nothing to show here, bro.'
if __name__ == '__main__':
app.run(debug=True)
< /code>
wft.html:
WTForm
body{
background-color: #2B2D42;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
margin: 0;
height: 100vh;
}
*{
color: #92DCE5;
}
.main{
font-size: 1.5em;
font-weight: 1500;
}
form p input{
color: black;
}
form p label{
color: #FF66D8;
}
form p input:focus{
outline: none;
}
Flask WTF
{{ form.hidden_tag() }}
{{ form.name.label }} {{ form.name() }}
{{ form.password.label }} {{ form.password() }}
{{ form.password_confirmation.label }} {{ form.password_confirmation }}
{{ form.submit() }}
< /code>
form.py:
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField, PasswordField
from wtforms.validators import DataRequired, length, EqualTo
class MyForm(FlaskForm):
name = StringField('Name', validators=[DataRequired()])
password = PasswordField('Password', validators=[DataRequired(),length(min=8, max=16)])
password_confirmation = PasswordField('Confirm', validators=[DataRequired(), EqualTo('password', message='Must be equal to first password')])
submit = SubmitField('Send username')
< /code>
The main problem is that the EqualTo() varidator (в form.py ) не работает, как предполагается, поскольку он не бросает никаких предупреждений, если пароль неверный (что, кстати, я уже пробовал), а страница Просто отправлено, но еще одна проблема заключается в том, что форма должна отправить запрос в качестве поста, однако, в/home Просмотр я не могу захватить этот метод (я думаю, что это проблема).
Дополнительная информация: < /p>
Flask 3.1.0
Flask-WTF 1.2.2
Werkzeug 3.1.3
WTForms 3.2.1
Подробнее здесь: https://stackoverflow.com/questions/794 ... validators
Ошибки с Flask-WTF, валидаторы ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение