我有多个表单,每个表单都有一个提交按钮,都在一个模板中。render_template
只返回空的StringFields
。如何在不接触其他StringFields
的情况下进行渲染?你知道吗
@app.route('/', methods=['GET','POST'])
def index():
msform = msForm(request.form)
synform = synForm(request.form)
if request.method == 'POST' and msform.validate() and msform.ms_submit.data:
processed_text = model.most_similar(positive=[msform.ms_3.data, msform.ms_2.data], negative=[msform.ms_1.data])
msform.ms_submit.label.text = processed_text[0][0]
return render_template('my-form.html', msform=msform, synform=synform)
elif request.method == 'POST' and synform.validate() and synform.syn_submit:
processed_text = model.most_similar([synform.syn_1.data])
return render_template('my-form.html', msform=msform, synform=synform)
return render_template('my-form.html', msform=msform, synform=synform)
class msForm(Form):
ms_1 = StringField(label='Eingabe_1', default = 'king', validators=[validators.DataRequired(message='This Field is required')])
ms_2 = StringField(label='Eingabe_2', default = 'man', validators=[validators.DataRequired(message='This Field is required')])
ms_3 = StringField(label='Eingabe_3', default = 'queen', validators=[validators.DataRequired(message='This Field is required')])
ms_submit = InlineSubmitField(label = '?')
class synForm(Form):
syn_1 = StringField(label='Eingabe', default = 'king', validators=[validators.DataRequired()])
syn_submit = InlineSubmitField('?')
我假设您的HTML页面上有两个独立的
<form>
,为简洁起见,如下所示:我相信你是这么说的:在填写和提交一个表单时,另一个表单的值就丢失了。对吗?你知道吗
如果是这样,这就是预期的行为,不是来自Flask,而是来自浏览器。提交HTML
<form>
时,只有来自该表单标记的数据被发送到服务器。因此,其他<form>
标记中的任何数据都将丢失。你知道吗要提交所有表单,请在相同的
<form>
标记中呈现所有表单。为每个表单指定一个前缀,以确保输入名称不会发生冲突。你知道吗相关问题 更多 >
编程相关推荐