Развертывание приложения на Flask

FlaskFlaskBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом лабе мы узнаем, как развернуть приложение Flask на сервере. Мы создадим файл дистрибутива для нашего приложения и установим его на сервере. В лабе предполагается, что у вас есть базовое понимание Flask, виртуальных окружений Python и командной строки.

Примечание: вам нужно создать файл кода самостоятельно и запустить его в среде. Вы можете просмотреть статус сервиса Flask на Web 5000.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL flask(("Flask")) -.-> flask/DataHandlingGroup(["Data Handling"]) flask(("Flask")) -.-> flask/CoreConceptsGroup(["Core Concepts"]) flask(("Flask")) -.-> flask/DevelopmentToolsGroup(["Development Tools"]) flask/DataHandlingGroup -.-> flask/incoming_request_data("Incoming Request Data") flask/DataHandlingGroup -.-> flask/response_objects("Response Objects") flask/CoreConceptsGroup -.-> flask/application_object("Application Object") flask/CoreConceptsGroup -.-> flask/sessions("Sessions") flask/CoreConceptsGroup -.-> flask/json_support("JSON Support") flask/CoreConceptsGroup -.-> flask/useful_internals("Useful Internals") flask/DevelopmentToolsGroup -.-> flask/command_line_interface("Command Line Interface") subgraph Lab Skills flask/incoming_request_data -.-> lab-136343{{"Развертывание приложения на Flask"}} flask/response_objects -.-> lab-136343{{"Развертывание приложения на Flask"}} flask/application_object -.-> lab-136343{{"Развертывание приложения на Flask"}} flask/sessions -.-> lab-136343{{"Развертывание приложения на Flask"}} flask/json_support -.-> lab-136343{{"Развертывание приложения на Flask"}} flask/useful_internals -.-> lab-136343{{"Развертывание приложения на Flask"}} flask/command_line_interface -.-> lab-136343{{"Развертывание приложения на Flask"}} end

Сборка приложения

Во - первых, нам нужно создать файл 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-сервера.