python Flask Form.validate_on_submit未重定向

3phpmpom  于 2023-03-28  发布在  Python
关注(0)|答案(2)|浏览(137)

我正在学习Flask框架,因此我正在写博客,我正在研究注册函数,但我没有让它重定向
这里是报名的路线

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

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

这是我为register.html <form method="POST" action="">使用的表单标签
我通过调试运行,它跳过了if语句。任何帮助将不胜感激。如果需要更多信息,请让我知道!

hs1ihplo

hs1ihplo1#

这是我对EqualTo如何工作的理解上差距(这是在表单代码中)

password = PasswordField("Password", validators=[DataRequired()])
confirm_password = PasswordField("Confirm Password", validators=[DataRequired(), EqualTo("password")])

我把括号中的P大写,因此返回了一个未知字段的错误

8ftvxx2r

8ftvxx2r2#

我遇到了同样的问题。并解决了检查forms.py在我的项目。我把所有的形式在同一个文件。
我的错误在这里:

*password* = PasswordField("Password", validators=[DataRequired()])
confirm_password = PasswordField("Confirm Password", validators=[DataRequired(), EqualTo("*Password*")])

因此,根据我的理解,EqualTo(parameter)的参数必须是PasswordField的变量名。
我的问题的解决方案是改变P的情况。

相关问题