Flask 烧瓶:在另一个页面上使用WTForm,而不是呈现表单本身的页面
我有以下设置: 渲染页面:Flask 烧瓶:在另一个页面上使用WTForm,而不是呈现表单本身的页面,flask,flask-wtforms,flask-bootstrap,Flask,Flask Wtforms,Flask Bootstrap,我有以下设置: 渲染页面: @app.route('/one', methods=['GET']) def one(): form = AnyForm() return render_template( 'form.html', form=form ) 模板(剥离为基本模板): 路线/功能,包括逻辑 @app.route('/two', methods=['POST']) def two(form): print('FORMDATA: ' + f
@app.route('/one', methods=['GET'])
def one():
form = AnyForm()
return render_template(
'form.html', form=form
)
模板(剥离为基本模板):
路线/功能,包括逻辑
@app.route('/two', methods=['POST'])
def two(form):
print('FORMDATA: ' + form)
return redirect(url_for('one'))
错误是:
TypeError: two() missing 1 required positional argument: 'form'
如何处理此问题?您必须在函数
two
中定义表单,并从函数接收的post请求中填充表单,这样您就不需要获取任何参数
试试这个:
@app.route('/two', methods=['POST'])
def two():
form = AnyForm(request.form)
print('FORMDATA: ' + form)
return redirect(url_for('one'))
按照您尝试的方式,您必须为函数的url\u提供如下表单参数
{{ wtf.quick_form(form, action=url_for('two', form=form)) }}
我不确定它是否有效
{{ wtf.quick_form(form, action=url_for('two', form=form)) }}