在html模板中同时显示烧瓶变量

时间:2020-04-01 08:26:01

标签: python html flask

我在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')

我的问题是,当我向一种形式输入信息时,另一种变量重置为“无”。我希望每个表单的信息都可以继续显示,而与其他表单提交无关。预先感谢

1 个答案:

答案 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')
相关问题