Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 提交表单时页面未重定向_Python_Flask_Python 3.7 - Fatal编程技术网

Python 提交表单时页面未重定向

Python 提交表单时页面未重定向,python,flask,python-3.7,Python,Flask,Python 3.7,我正在创建一个博客应用程序。我用post方法创建了一个注册表,询问详细信息。在烧瓶路径中,我试图检查我的表单是否正确验证。为了实现这一点,我创建了一个if语句,当条件为true时,我尝试重定向到主路由。但事实并非如此。我不确定这里有什么问题。但是我可以看到帖子给出了200个状态码 我试着打印一些东西,但它什么也不打印。我尝试从html文件中删除该方法,我尝试重新执行注册路径,我猜验证本身没有发生 #回家路线 @应用程序路径(“/”) @应用程序路径(“/home”) def home(): 返回

我正在创建一个博客应用程序。我用post方法创建了一个注册表,询问详细信息。在烧瓶路径中,我试图检查我的表单是否正确验证。为了实现这一点,我创建了一个if语句,当条件为true时,我尝试重定向到主路由。但事实并非如此。我不确定这里有什么问题。但是我可以看到帖子给出了200个状态码

我试着打印一些东西,但它什么也不打印。我尝试从html文件中删除该方法,我尝试重新执行注册路径,我猜验证本身没有发生

#回家路线
@应用程序路径(“/”)
@应用程序路径(“/home”)
def home():
返回呈现模板('home.html',posts=posts,title=“home”)
#注册路由
@app.route('/register',methods=['GET','POST'])
def寄存器():
表单=注册表单()
if form.validate_on_submit():
#flash(f'Account created for{form.username.data}!','success')
打印(“帐户创建成功”)
返回重定向(url_代表('home'))#路由的函数名。
返回呈现模板('register.html',title=“register”,form=form)
#forms.py文件
来自flask_wtf进口FlaskForm
从wtforms导入StringField、PasswordField、SubmitField、BooleanField
从wtforms.validators导入所需数据、长度、电子邮件、相等
班级登记表(烧瓶表):
username=StringField('username',验证器=[
DataRequired(),
长度(最小值=2,最大值=20)
])
email=StringField('email',验证器=[
DataRequired(),Email()
])
password=PasswordField('password',验证器=[DataRequired()])
confirmPassword=PasswordField('Confirm Password',Validator=[DataRequired(),EqualTo(Password)])
提交=提交字段(“注册”)

{%with messages=get\u flashed\u messages(with\u categories=true)%}
{%if消息%}
{%对于类别,消息中的消息%}
{{message}}
{%endfor%}
{%endif%}
{%endwith%}
{%block content%}{%endblock content%}

{%extends“layout.html”%}
{%block content%}
{{form.hidden_tag()}}
今天加入
{{form.username.label(class=“form control label”)}
{{form.username(class=“form control form control lg”)}
{{form.email.label(class=“form control label”)}
{{form.email(class=“form control form control lg”)}
{{form.password.label(class=“form control label”)}
{{form.password(class=“form control form control lg”)}
{{form.confirmPassword.label(class=“form control label”)}
{{form.confirmPassword(class=“form control form control lg”)}
{{form.submit(class=“btn btn outline info”)}
已经有账户了吗?
{%endblock内容%}

预期的输出是页面必须重定向到home.html,但由于某些原因,它停留在register.html,并且没有错误消息。我甚至为post操作获得了200个状态代码。

在发布表单后,它有错误:

{'confirmPassword':[“无效字段名”“。”]}

这是因为您将
password
字段实例传递给
EqualTo
验证器,而不是将其名称作为字符串:
'password'

confirmPassword = PasswordField('Confirm Password', validators=[DataRequired(), EqualTo('password')])

成功了,谢谢你。但是你是如何得到这些错误的呢?我应该使用什么调试器?我使用PyCharm调试器。我也使用PyCharm,但没有得到任何错误。我所能看到的就是你所要求的成功。是否在if语句中使用了断点?