Развертывание

Мета-информация об этом руководстве

Цели обучения

  • Развертывание

Примечание. Это руководство является частью серии Научитесь изучать Flask с научной точки зрения.

Исходный код

  • Исходный код этого руководства доступен на GitHub.
  • Демо можно найти на этом сайте.
  • Версия, которая охватывает только это руководство, доступна на GitHub.

Планы

В этом руководстве мы развернем разрабатываемое нами веб-приложение и покажем его миру:

Мы будем пользоваться бесплатным сервисом Heroku. Heroku - это служба хостинга приложений, построенная на базе таких сервисов AWS, как EC2.

Вы можете воспользоваться преимуществами EC2, но вам не придется заниматься администрированием системы, которое требуется для EC2. С Heroku вы можете просто развернуть свое приложение с git push на их сервере.

Использование веб-сервера WSGI производственного уровня

Сервер разработки Flask плохо справляется с реальными запросами. Для развертывания нашего приложения нам в первую очередь понадобится веб-сервер WSGI производственного уровня. Для этого мы воспользуемся пулеметом.

Чтобы установить gunicorn, введите в терминале следующую строку (вам все еще нужно находиться в виртуальной среде):

(env)$ pip install gunicorn==19.9.0

Поскольку мы использовали шаблон фабрики приложений, стрелку трудно найти наш модуль приложения напрямую. В результате нам нужно создать файл с именем wsgi.py на корневом уровне:

#wsgi.py
from app import create_app
app = create_app()

Чтобы убедиться, что это работает, введите в свой терминал следующую строку:

(env)$ gunicorn wsgi:app

Вы должны увидеть следующее:

[2019-12-27 15:41:08 -0800] [31065] [INFO] Starting gunicorn 19.9.0
[2019-12-27 15:41:08 -0800] [31065] [INFO] Listening at: http://127.0.0.1:8000 (31065)
[2019-12-27 15:41:08 -0800] [31065] [INFO] Using worker: sync
[2019-12-27 15:41:08 -0800] [31068] [INFO] Booting worker with pid: 31068

Gunicorn будет использовать ваш портал 8000. Вы должны иметь возможность проверить свое приложение локально по адресу http://127.0.0.1:8000 через свои веб-браузеры.

Используйте Heroku

Чтобы подготовиться к развертыванию вашего приложения в Heroku, вам необходимо:

  1. Зарегистрируйтесь на Heroku.com.
  2. Установите Heroku CLI. (Следуйте инструкциям на этой веб-странице.)
  3. Дважды проверьте свой requirements.txt: Напомним, что мы создали файл требований в учебнике Сборка, тестирование и развертывание приложения Flask: Часть 3 - Фабрика приложений и схемы элементов. Чтобы убедиться, что мы не добавили никаких новых зависимостей (на самом деле мы это сделали), снова запустите следующую строку в своем терминале:
(env)$ pip freeze > requirements.txt

4. Создайте новый файл с именем procfile:

web gunicorn wsgi:app

5. Зафиксируйте и отправьте все вышеуказанные изменения на GitHub.

Теперь вы готовы к развертыванию. Введите в свой терминал следующие строки:

(env)$ heroku create
(env)$ git push heroku master

Вы можете проверить свое действующее приложение, запустив heroku open, чтобы открыть приложение в браузере. Вы также можете посмотреть мою демонстрацию на этом сайте.

Список учебных пособий