English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Деплоймент Flask

Приложения Flask на разработочном сервере доступны только на компьютерах, на которых установлена среда разработки. Это является стандартным поведением, так как в режиме отладки пользователи могут выполнять любые коды на компьютере.

Если отладка отключена, установив имя хоста в :0.0.0.0, пользователи в сети смогут использовать разработочный сервер на вашем локальном компьютере.

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : ru.oldtoolbag.com
# Date : 2020-08-08
app.run(host = '0.0.0.0')

Таким образом, ваша операционная система будет прослушивать все общие IP, что означает, что все запросы будут обрабатываться.

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

Чтобы перейти от разработочной среды к полному производственному окружению, приложение должно быть развернуто на реальном веб-сервере. В зависимости от вашей конкретной ситуации, вы можете использовать различные параметры для развертывания веб-приложений Flask.

Для небольших приложений можно рассмотреть возможность их развертывания на任何一个 из следующих хостинговых платформ, все они предоставляют бесплатные планы для небольших приложений.

Heroku dotcloud webfaction

Flask-приложения могут быть развернуты на этих облачных платформах. Кроме того, Flask-приложения можно развернуть на платформе Google Cloud. Услуга Localtunnel позволяет вам делиться своим приложением на локальном хосте, не путая настройки DNS и брандмауэра.

Если вы предпочитаете использовать专用 веб-сервер вместо вышеуказанных общих платформ, вы можете использовать следующие параметры.

mod_wsgi

mod_wsgi - это модуль Apache, который предоставляет интерфейс совместимости WSGI для托管 веб-приложений на основе Python в сервере Apache.

Установить mod_wsgi

Чтобы установить официальную версию напрямую с PyPi, можно запустить -

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : ru.oldtoolbag.com
# Date : 2020-08-08
pip install mod_wsgi

Чтобы проверить успешность установки, выполните команду start-server для скрипта mod_wsgi-express -

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : ru.oldtoolbag.com
# Date : 2020-08-08
mod_wsgi-express start-server

Он запустится на порту: 8000 Apache/mod_wsgiЗатем, можно направить браузер на -

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : ru.oldtoolbag.com
# Date : 2020-08-08
http://localhost:8000/

Создание файла .wsgi

Должен быть yourapplication.wsgi Файл. Этот файл содержит код mod_wsgi, который выполняется при запуске для получения объекта приложения. Для большинства приложений следующий файл должен быть достаточным -

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : ru.oldtoolbag.com
# Date : 2020-08-08
from yourapplication import app as application

Убедитесь, что yourapplication и все используемые библиотеки находятся в python-пути загрузки.

Конфигурация Apache

Необходимо сообщить mod_wsgi, где находится приложение. Укажите следующую конфигурацию -

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : ru.oldtoolbag.com
# Date : 2020-08-08
<VirtualHost *>
    ServerName example.com
    WSGIScriptAlias / C:\yourdir\yourapp.wsgi
    <Directory C:\yourdir>
       Order deny,allow
       Allow from all
    </Directory>
 </VirtualHost>

Независимый контейнер WSGI

Есть много популярных серверов, написанных на Python, которые содержат приложения WSGI и предоставляют HTTP-сервис.

Gunicorn Tornado Gevent Twisted Web