在 HTML 模板中一次显示来自不同形式的多个烧瓶变量
Displaying multiple flask variables from different forms at once in HTML template
我在名为 queries.html 的 html 模板上有 2 个单独的表单,一个用于输入公司名称,另一个用于输入关键字,如下所示。
<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':
if request.form['company_name']:
name = request.form['company_name']
return render_template('queries.html', name=name)
elif request.form['keywords']:
keywords = request.form['keywords']
return render_template('queries.html', keywords=keywords)
return render_template('queries.html')
我的问题是,首先,输入公司名称时,{{ name }} 元素显示正常,但在输入关键字时出现 'bad request' 错误。其次,我之前确实有两个输入都在工作,但是当我使用一种形式时,它会擦除另一种形式的显示数据,例如在已经输入并显示公司名称后输入关键字时,关键字会按原样出现在 {{ keyword }} 元素中,但公司名称会消失。经过一些研究,我可能需要使用 AJAX 来保持显示所有元素,但不确定我是否在寻找正确的方向。看来这应该是一个比较容易解决的问题,求助!提前感谢任何回复。
代替:
request.form['company_name']
request.form['keywords']
使用这个:
request.form.get("company_name")
request.form.get("keywords")
如果表单输入中没有值,Flask 会抛出错误。使用 form.get 烧瓶将尝试获取值,如果没有值将进行处理。
我在名为 queries.html 的 html 模板上有 2 个单独的表单,一个用于输入公司名称,另一个用于输入关键字,如下所示。
<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':
if request.form['company_name']:
name = request.form['company_name']
return render_template('queries.html', name=name)
elif request.form['keywords']:
keywords = request.form['keywords']
return render_template('queries.html', keywords=keywords)
return render_template('queries.html')
我的问题是,首先,输入公司名称时,{{ name }} 元素显示正常,但在输入关键字时出现 'bad request' 错误。其次,我之前确实有两个输入都在工作,但是当我使用一种形式时,它会擦除另一种形式的显示数据,例如在已经输入并显示公司名称后输入关键字时,关键字会按原样出现在 {{ keyword }} 元素中,但公司名称会消失。经过一些研究,我可能需要使用 AJAX 来保持显示所有元素,但不确定我是否在寻找正确的方向。看来这应该是一个比较容易解决的问题,求助!提前感谢任何回复。
代替:
request.form['company_name']
request.form['keywords']
使用这个:
request.form.get("company_name")
request.form.get("keywords")
如果表单输入中没有值,Flask 会抛出错误。使用 form.get 烧瓶将尝试获取值,如果没有值将进行处理。