Развертывание
Мета-информация об этом руководстве
Цели обучения
- Развертывание
Примечание. Это руководство является частью серии Научитесь изучать 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, вам необходимо:
- Зарегистрируйтесь на Heroku.com.
- Установите Heroku CLI. (Следуйте инструкциям на этой веб-странице.)
- Дважды проверьте свой
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
, чтобы открыть приложение в браузере. Вы также можете посмотреть мою демонстрацию на этом сайте.
Список учебных пособий
- Создайте и протестируйте приложение mini Flask
- Сборка, тестирование и развертывание приложения Flask: Часть 1 - Шаблоны
- Сборка, тестирование и развертывание приложения Flask: Часть 2 - Аутентификация
- Сборка, тестирование и развертывание приложения Flask: Часть 3 - Фабрика приложений и схемы элементов
- Сборка, тестирование и развертывание приложения Flask: Часть 4 - Тестирование реструктуризации
- Сборка, тестирование и развертывание приложения Flask: Часть 5 - Аутентификация (продолжение)
- Сборка, тестирование и развертывание приложения Flask: Часть 6 - Обзор системы
- Сборка, тестирование и развертывание приложения Flask: Часть 7 - Развертывание