Валидаторы Flask и перенаправление не работают [закрыто]Python

Программы на Python
Ответить
Anonymous
 Валидаторы Flask и перенаправление не работают [закрыто]

Сообщение Anonymous »

Окончательное изменение: я понял, что проблема связана с моим HTML-кодом, и я допустил ошибку в начале страницы регистрации. Я неправильно написал метод формы. Возможно, это поможет кому-то в будущем, если у него возникнет такая же проблема







Исходное сообщение:
Я не понимаю, что происходит. Я использую vscode и python 3.8

Валидатор DataRequired, похоже, работает нормально, но валидаторы Email и EqualTo не работают. Vscode сообщает мне, что с моим кодом form.py есть три проблемы: неразрешенный импорт 'flask_wtf'; неразрешенный импорт «wtforms»; неразрешенный импорт 'wtforms.validators'.
Я нахожу это странным, поскольку валидатор DataRequired, похоже, работает нормально.

Кроме того, при отправке формы перенаправление не работает. Страница просто остается на странице регистрации вместо перенаправления на главную.

Изменить: из валидаторов валидатор DataRequired — единственный, который работает и отображает любое сообщение. Ни для одного из остальных ничего не происходит, и будет разрешена отправка, если остальные не заполнены (Длина, Электронная почта, Равно)

forms.py:

from wtforms import StringField, PasswordField, SubmitField, BooleanField
from wtforms.validators import DataRequired, Length, Email, EqualTo

class RegistrationForm(FlaskForm):
name = StringField('Your Name',
validators=[ DataRequired(), Length(min=2,max=50) ])
email = StringField('Email', validators=[DataRequired(), Email() ])
password = PasswordField('Password', validators=[DataRequired()])
confirm_password = PasswordField('Confirm Password', validators=[DataRequired(), EqualTo('password')])
submit = SubmitField('Sign Up')

class LoginForm(FlaskForm):
email = StringField('Email', validators=[DataRequired(), Email() ])
password = PasswordField('Password', validators=[DataRequired()])
remember = BooleanField('Remember Me')
submit = SubmitField('Login')


код для приложения

from flask import Flask, escape, request, render_template, url_for, flash, redirect
from forms import RegistrationForm, LoginForm

app = Flask(__name__)

tasks = ['first task', 'second task']

app.config['SECRET_KEY'] = 'sercretKey'

@app.route('/')
@app.route('/home')
def home():
return render_template('home.html', tasks=tasks)

@app.route('/about')
def about():
return render_template('about.html', title='About')

@app.route('/register', methods=['GET', 'POST'])
def register():
form = RegistrationForm()
if form.validate_on_submit():
flash(f'Account created for {form.name.data}!', 'success')
return redirect( url_for('home'))
return render_template('register.html', title = 'Register', form = form)

@app.route('/login')
def login():
form = LoginForm()
return render_template('login.html', title = 'Login', form = form)

if __name__ == '__main__':
app.run(debug=True)


Подробнее здесь: https://stackoverflow.com/questions/616 ... ot-working
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»