Введение
В этом лабе мы узнаем, как развернуть приложение Flask на сервере. Мы создадим файл дистрибутива для нашего приложения и установим его на сервере. В лабе предполагается, что у вас есть базовое понимание Flask, виртуальных окружений Python и командной строки.
Примечание: вам нужно создать файл кода самостоятельно и запустить его в среде. Вы можете просмотреть статус сервиса Flask на Web 5000.
Сборка приложения
Во - первых, нам нужно создать файл wheel для нашего приложения. Для этого мы будем использовать инструмент build. Установите инструмент build с помощью pip, если вы его еще не установили:
## Установите инструмент build
pip install build
Теперь используйте инструмент build для создания файла wheel:
## Создайте файл wheel
python -m build --wheel
Файл wheel должен находиться в директории dist с именем, похожим на flaskr-1.0.0-py3-none-any.whl.
Установка приложения на сервер
Скопируйте файл wheel на ваш сервер. Когда он там, создайте новое виртуальное окружение Python и установите файл wheel с помощью pip:
## Установите файл wheel
pip install flaskr-1.0.0-py3-none-any.whl
Поскольку это новое окружение, вам нужно инициализировать базу данных снова:
## Инициализируйте базу данных
flask --app flaskr init-db
Настройка секретного ключа
В рабочей среде вы должны изменить секретный ключ на случайное значение. Чтобы сгенерировать случайный секретный ключ, выполните следующую команду:
## Сгенерировать случайный секретный ключ
python -c 'import secrets; print(secrets.token_hex())'
Создайте файл config.py в папке экземпляра и задайте SECRET_KEY значением, полученным выше.
#.venv/var/flaskr-instance/config.py
SECRET_KEY = 'your_generated_secret_key'
Запуск приложения с использованием продакшен-сервера
Для рабочей среды вы должны использовать WSGI-сервер вместо встроенного сервера разработки. Мы будем использовать Waitress в качестве нашего WSGI-сервера.
Во - первых, установите Waitress:
## Установите Waitress
pip install waitress
Теперь укажите Waitress запустить ваше приложение:
## Запустите приложение с использованием Waitress
waitress-serve --call 'flaskr:create_app'
Резюме
В этом практическом занятии мы узнали, как развернуть приложение на Flask на продакшен-сервере. Мы собрали наше приложение в файл wheel, установили его на сервере, настроили секретный ключ и запустили приложение с использованием продакшен-WSGI-сервера.