使用POST为flask url

时间:2015-08-04 16:52:26

标签: python flask wtforms

我一直在关注其他堆栈问题,但我仍然对一个我认为对大多数人来说非常简单的概念感到困惑。基本上,我试图了解我的表单中的数据在form.validate_on_submit时如何发布到我的网址路径。使用Get / Post

提前道歉不好的术语

我使用WTForms有以下表格:

class Info(Form):
    name = StringField('Name', validators=[Length(0, 64)],filters=[lambda x: x or None])
    submit = SubmitField('Submit')

然后在我的views.py中使用表单。

@main.route('/people/', methods=('GET', 'POST'))
def person():
    form = Info()
    if form.validate_on_submit():
        name = form.name.data
        return redirect(url_for('.find_person', name=name))
    return render_template('mytemplate.html', form=form)

我希望网址发布到@ main.route / people /之类的内容。 然后在find_person()中我可以使用request.form来获取参数。提前致谢

2 个答案:

答案 0 :(得分:0)

在HTML模板中,在设置表单标记时,请确保它看起来像:

<form action="{{ url_for('people') }}" method="post">
  <...content of your form here...>
</form>

答案 1 :(得分:0)

  
    

我试图理解form.validate_on_submit

时我的表单中的数据将如何发布到我的网址路径   

在构建Info对象期间,会从flask.request.form隐式提取您的表单数据。来自flask_wtf.Form.__init__的文档:&#34;如果未指定formdata,则会使用flask.request.form。明确传递formdata = None以防止这种情况。&#34;