Запуск flask-приложения на локальном компьютере

Прежде чем запускать flask-приложение (сайт на фреймворке Flask), требуется установить фреймворк Flask в операционную систему или виртуальное окружение (см. предыдущую статью).

Простейшее flask-приложение выглядит примерно так:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return 'Hello World'

Имя файла может быть произвольным, но не flask.py (иначе в дальнейшем при настройке веб-сервера может быть конфликт с модулем flask при импорте). Нередко такой файл называют app.py.

Фреймворк Flask имеет в своем составе веб-сервер, который позволяет запускать сайт (flask-приложение) на локальном компьютере. Использовать его в "продакшене" на удаленном компьютере (веб-сервер как железо) не получится.

Находясь в каталоге проекта, выполним следующую команду:

flask --app имя_файла run --debug

Если вы не устанавливали виртуальную и данная команда не работает, то в Ubuntu работает такая команда:

python3 -m flask --app имя_файла run --debug

Здесь имя_файла ‒ это имя главного файла вашего приложения, но без расширения .py. Если вы назвали этот файл app.py, то команду можно использовать без опции --app и, следовательно, без указания имени файла:

flask run --debug

Опция --debug позволяет отображать изменения в браузере без перезагрузки веб-сервера. То есть после того, как вы вносите корректировки в программу, вам не надо останавливать веб-сервер и заново его запускать, чтобы увидеть изменения (но F5 в браузере все же нажмите), как это делается на настоящем сервере, где использовать отладчик не следует.

После запуска веб-сервера вы увидите в терминале примерно следующее:

 * Serving Flask app 'project'
 * Debug mode: on
WARNING: This is a development server. …
 * Running on http://127.0.0.1:5000
Press CTRL+C to quit
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 837-251-238

В последствии, чтобы остановить работу веб-сервера, надо нажать Ctrl + C.

Когда веб-сервер запущен, набрав в адресной строке браузера http://127.0.0.1:5000 (или кликнув в терминале по этому адресу с зажатым Ctrl), вы увидите страницу со строкой, которую возвращает функция index() нашей flask-программы.

Пин-код понадобится, если захотите что-нибудь протестировать через интерактивную консоль дебагера, которая открывается по адресу http://127.0.0.1:5000/console.