在rending html之后使用post html

时间:2017-12-03 05:44:05

标签: javascript forms post flask flask-wtforms

使用flask和WT表单我试图在表单中获取用户输入并将用户输入重定向到另一个路由,使用函数中的输入将得到一些数据字典。

我希望这些数据以WT形式使用。一旦我看到数据并检查完全没问题。我想将其保存为数据库的新条目。

问题:在退出表单后,我无法处理为post请求。

@app.route('/', method =[POST,GET])
def home():
    forms = inputForms(request.form)
    if form_validate() and request.POST:
         value=forms.input.data
         redirect(url_for(/edit, value=value) 
    return render_template('input.html')  -- Initial page where getting user input 
  @app.route('/edit', method =[POST,GET])
   def edit(value):
       data= getdata(value)
       if data == 'error':
            return render_template('error.html')
       else:
          form=request.form(data=data)
          return render_template('data.html', form=form
          if form_validate() and request.POST:
               save ()

我希望看到一旦呈现表单,我该如何使用它提交。

我能够获得表格,但一旦返回,我就无法继续保存选项

1 个答案:

答案 0 :(得分:0)

根据您的评论,您可以更改帖子操作。所以你的表格是POST到另一条路线。

<form method="POST" action="{{url_for('edit')}}">
{{ form.csrf_token }}
{{ form.name.label }} {{ form.name(size=20) }}
<input type="submit" value="Go">

在模板中使用上述内容,然后您可以将验证功能移至route

@app.route('/edit', method =[POST,GET])
def edit():
   if request.method == 'POST' and form.validate():
      pass
通过这种方式,您可以处理edit路线中的所有内容。 然后您的home路线可以更改为仅渲染表单。

@app.route('/', method =[POST,GET])
def home():
    forms = inputForms(request.form)
    return render_template('input.html')

您的trailing slash应该有routes。因此最好将您的路线设为:

@app.route('/edit/', method =[POST,GET])
def edit():
    pass