我无法绕烧瓶的逻辑缠绕我的头了。例如,下面的代码段可以处理注册表。棘手的(对我而言)部分是form.validate_on_submit()
逻辑在模板呈现之前。也就是说,当用户有机会提交表单中的某些内容时,该函数已经在form.validate_on_submit()
逻辑中,已经在return语句中。
尽管如此,此示例仍然有效。我想了解即使在到达其return语句后如何执行函数中的逻辑。
@app.route('/', methods=('GET', 'POST'))
def contact():
form = ContactForm()
if form.validate_on_submit():
return redirect(url_for('success'))
return render_template('index.html', form=form)
谢谢!
答案 0 :(得分:0)
这里的关键概念是if
条件。
您错过的是form.validate_on_submit
是便利功能的事实,它等同于说
if request.method=="POST" and form.validate():
# ...
您可以看到一个示例,其中显示了here
首次加载页面时,它带有 GET 请求。我们执行第一行form = ContactForm()
,由于我们的条件不会求值为True ,因为它不是POST请求,因此不会求值为,因此我们转到最后一行,并通过表单传递HTML模板。
现在,一旦页面显示给用户并且他们提交了表单,我们就会向与以前相同的路线发送请求,但带有POST请求。现在,我们可以验证表单,并假设所有内容都已签出,就可以触发重定向。
希望得到帮助,在真正适应所要看的内容之前肯定会有些困惑!