У меня есть форма HTML, и мне нужно отобразить вычисленные значения под формой после того, как пользователь нажмет кнопку отправки - PullRequest
0 голосов
/ 03 мая 2020

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

Ответы [ 2 ]

1 голос
/ 03 мая 2020

Во-первых, вам нужно настроить форму для отправки данных на ваш домашний маршрут в Html.

т.е.

<form action="/" method="POST">
        <!-- input you want to work with -->
        <input type="text" name="number">

        <!-- submit button -->
        <input type="submit" value="SUBMIT">
</form>

Убедитесь, что метод POST


Затем необходимо составить маршрут flask для приема опубликованных данных.

Убедитесь, что он принимает оба значения GET и POST метод.

@app.route('/', methods=['GET', 'POST'])

Необходимо запрашивать данные формы только в том случае, если метод POST .

if request.method == 'POST':
    number = request.form['number']
    # do something with it
    result = number
else:
    result = None
return render_template('index.html', result=result)

Потому что:

  1. Вы хотите, чтобы браузер загружал контент только при использовании метода GET .
  2. Вы не можете получить доступ к форме в GET запрос, и, следовательно, это приведет к ошибке.

Затем поместите полученное значение в переменную (в моем случае result ) и передайте его в файл HTML.

т.е. (Полный python код)

@app.route('/', methods=['GET', 'POST'])
def home():
    if request.method == 'POST':
        result = request.form['number']
    else:
        result = None
    return render_template('index.html', result=result)

Затем в вашем файле HTML проверьте переменную, в которой ваше значение. И если значение существует, отобразите его на странице.

т.е.

{% if result %}
    <p>Your no. is {{ result }}</p>
{% endif %}

Надеюсь, это поможет. Прокомментируйте, если у вас есть какие-либо сомнения. 10

Также может помочь: Методы HTTP

0 голосов
/ 03 мая 2020

Вы можете проверить это: https://www.youtube.com/watch?v=Pc8WdnIdXZg Или то, что вы можете сделать, это просто передать окончательный результат, сгенерированный .py файлом, в шаблон html. Пример:

@app.route('/')
def home():
    output = 2 #Let this be your output after using the prediction model
    return render_template('index.html',output=output)

И в index. html файле вы можете использовать

The output is : {{output}} <!--This line will give the output from the .py file -->
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...