Выполнение кода Python на странице HTML с использованием Flask - PullRequest
0 голосов
/ 03 марта 2020

Я новичок в Flask. Я хочу запустить свой проект Python, когда кнопка запуска нажата со страницы HTML, и отобразить строку, возвращаемую из кода Python, на странице HTML. Я использую Python flask. Это файл HTML с кнопкой. (Имя файла HTML: json. html)

<!DOCTYPE html>
<html>
<body>

<h1>Smart Job Interviewer</h1>

<button type="button">Start the Interview</button>

</body>
</html>

Ниже приведен файл Python flask. newexecutiontest - это мой python файл, а run () - это функция, которую мне нужно запустить. Эта функция возвращает строку, и я хочу отобразить ее на странице HTML.

from flask import Flask
from TextToSpeech import newexecutiontest
from flask import render_template

app = Flask(__name__)

@app.route('/')
def index():
    return render_template('json.html')

def dynamic_page():
    return newexecutiontest.run()

if __name__ == '__main__':
    app.run(host='0.0.0.0', port='8000', debug=True)

Когда я запускаю код и загружаю веб-страницу, он говорит, что «Этот сайт недоступен» Может кто-то, пожалуйста, помогите мне достичь вышеупомянутой задачи. Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 04 марта 2020
  1. Попробуйте изменить IP-адрес на localhost или 127.0.0.1

  2. Вы должны сохранить шаблон html в папке / templates

1 голос
/ 03 марта 2020

Вы можете сделать кнопку частью формы, чтобы она перенаправлялась обратно в ваш модуль python по щелчку (простую печать строки при нажатии кнопки можно было бы сделать проще с помощью javascript, но я предполагаю run() выполняет также некоторые логи c). Также добавьте некоторое поле ввода в форму, чтобы вы могли знать, что оно было отправлено:

<form method="GET">
    <input type="hidden" name="start">
    <button type="submit">Start the Interview</button>
</form>

Теперь в файле flask вы можете выполнить базовую проверку c, чтобы проверить, является ли «start», или какое бы имя вы ни указали, оно присутствует в аргументах запроса get - это означает, что форма была отправлена. Можно передать аргументы в файл html, поэтому мы передадим None, если форма не была отправлена, или требуемую строку, если она была:

from flask import request

@app.route('/')
def index():
    return render_template('json.html', test_str=dynamic_page() if request.args.get("start") is not None else None)

И, наконец, вы можете проверить значение test_str в файле html и распечатайте его соответствующим образом, используя шаблонизатор jinja. Logi c объявляется между {% и %}, а оценки объявляются между {{ и }}. Добавление этого к файлу html, в котором должна быть напечатана строка, должна работать:

{% if test_str is not none %}
    <p>{{ test_str }}</p>
{% endif %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...