Flask:在另一个页面上使用 WTForm 而不是呈现表单本身
Flask: Using WTForm on another Page than the one rendering the form itself
我有以下设置:
渲染页面:
@app.route('/one', methods=['GET'])
def one():
form = AnyForm()
return render_template(
'form.html', form=form
)
模板(精简至基本):
{{ wtf.quick_form(form, action=url_for('two')) }}
route/function包括逻辑
@app.route('/two', methods=['POST'])
def two(form):
print('FORMDATA: ' + form)
return redirect(url_for('one'))
错误是:
TypeError: two() missing 1 required positional argument: 'form'
我该如何处理?
您必须在 functuin two
上定义表单并根据 post 函数接收的请求填充它,这样您就不需要获取任何参数
试试这个:
@app.route('/two', methods=['POST'])
def two():
form = AnyForm(request.form)
print('FORMDATA: ' + form)
return redirect(url_for('one'))
按照你尝试的方式,你必须给你的 url_for
函数一个像这样的表单参数
{{ wtf.quick_form(form, action=url_for('two', form=form)) }}
我不确定它是否有效
我有以下设置:
渲染页面:
@app.route('/one', methods=['GET'])
def one():
form = AnyForm()
return render_template(
'form.html', form=form
)
模板(精简至基本):
{{ wtf.quick_form(form, action=url_for('two')) }}
route/function包括逻辑
@app.route('/two', methods=['POST'])
def two(form):
print('FORMDATA: ' + form)
return redirect(url_for('one'))
错误是:
TypeError: two() missing 1 required positional argument: 'form'
我该如何处理?
您必须在 functuin two
上定义表单并根据 post 函数接收的请求填充它,这样您就不需要获取任何参数
试试这个:
@app.route('/two', methods=['POST'])
def two():
form = AnyForm(request.form)
print('FORMDATA: ' + form)
return redirect(url_for('one'))
按照你尝试的方式,你必须给你的 url_for
函数一个像这样的表单参数
{{ wtf.quick_form(form, action=url_for('two', form=form)) }}
我不确定它是否有效