Отображение flask переменных одновременно в шаблоне html - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть 2 отдельные формы в шаблоне html, называемые запросами. 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>

Я хочу иметь возможность для отображения формы ввода в тегах абзаца, видимых под каждой формой. Ниже приведен соответствующий flask код:

@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')

Мои проблемы заключаются в том, что при вводе информации в одну из форм другая переменная сбрасывается в None. Мне бы хотелось, чтобы информация из каждой формы продолжала отображаться независимо от отправки другой формы. Заранее спасибо

1 Ответ

0 голосов
/ 01 апреля 2020

Этого можно добиться, имея одну форму (данные обоих полей отправляются обратно) и задав для двух кнопок отправки разные значения. При обработке 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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...