我在html模板上有2个单独的表单,称为querys.html,一个表单用于输入公司名称,另一个表单用于输入关键字,如下所示。
<form method="POST">
<p>Enter Company Name:</p>
<p><input type="text" name="company_name"></p>
<p><input type="submit" value="submit"></p>
</form>
<p> Name: {{ name }} </p>
<form method="POST">
<p>Enter Keywords:</p>
<p><input type="text" name="keywords"></p>
<p><input type="submit" value="submit"></p>
</form>
<p> Keywords: {{ keywords }}</p>
我希望能够在每个表单下方的段落标签中显示表单输入。以下是相关的烧瓶代码:
@app.route('/queries/', methods=['GET', 'POST'])
def queries():
if request.method == 'POST':
name = request.form.get('company_name')
keywords = request.form.get('keywords')
return render_template('queries.html', name=name, keywords=keywords)
return render_template('queries.html')
我的问题是,当我向一种形式输入信息时,另一种变量重置为“无”。我希望每个表单的信息都可以继续显示,而与其他表单提交无关。预先感谢
答案 0 :(得分:0)
您可以通过使用单个表单(两个字段的数据都回发)并为两个提交按钮赋予不同的值来实现此目的。在POST处理中,您将能够确定单击了哪个按钮并相应地处理数据。
例如:
<form method="POST">
<p>Enter Company Name:</p>
<p><input type="text" name="company_name"></p>
<p><input type="submit" name="submit" value="company"></p>
<p> Name: {{ name }} </p>
<p>Enter Keywords:</p>
<p><input type="text" name="keywords"></p>
<p><input type="submit" name="submit" value="keywords"></p>
</form>
<p> Keywords: {{ keywords }}</p>
@app.route('/queries/', methods=['GET', 'POST'])
def queries():
if request.method == 'POST':
name = request.form.get('company_name')
keywords = request.form.get('keywords')
if request.form['submit'] == 'company':
# process company submit
return render_template('queries.html', name=name, keywords=keywords)
if request.form['submit'] == 'keywords':
# process keywords submit
return render_template('queries.html', name=name, keywords=keywords)
return render_template('queries.html', name=name, keywords=keywords)
return render_template('queries.html')