Как подключить Wsgi Python App приложения на примере Flask
WSGI — стандарт взаимодействия между Python-программой, выполняющейся на стороне сервера и самим веб-сервером, например Apache.
Идея:
В Python существует большое количество различного рода веб-фреймворков, тулкитов и библиотек. Для каждого из них собственный метод установки и настройки, они не умеют взаимодействовать между собой. Это может стать затруднением для тех, кто только начинает изучать Python, так как, например, выбор определённого фреймворка может ограничить выбор веб-сервера и наоборот.
WSGI предоставляет простой и универсальный интерфейс между большинством веб-серверов и веб-приложениями или фреймворками.
Более подробно http://lectureswww.readthedocs.io/5.web.server/wsgi.html
Полную инструкцию как поставить Django смотрите тут.
Мы попробуем настроить Python для модуля Flask
Для начала установки, войдите в cPanel и найдите ссылку для установки/развертывания приложений Python.
Вы должны увидеть версию Python. Настройте App Directory (каталог для приложений), чтобы указать, где должен находиться ваш код, в данном случае: public_html/exampleapppython. Настройте App URI (URI приложения), где вы хотите, чтобы ваше приложение было доступно, в данном случае "exampleapppython".
На рисунке выше показан результат нажатия кнопки "setup": было создано приложение, указывающее на файл python (в данном случае myapp.py) которые вы можете редактировать.
Один из важных шагов, оставшихся здесь, это добавить модуль Flask, Найдите" Flask " и добавьте его.
Если вы начали с нуля, используя cPanel, приложение было бы создано в указанном каталоге приложений, который Вы указали с похожей структурой
/public
myapp.py
passenger_wsgi.py
.htaccess
Если вы указали свой Каталог приложений (App Directory) на существующее приложение, скрипт cPanel добавит только passenger_wsgi.py файл и .htaccess file файл.
"public"каталог используется для активов, "myapp.py" file-ваша точка входа в приложение, "passenger_wsgi.py" это скрипт, рассказывающий passenger'у, как интерпретировать ваше приложение и какой файл использовать для обслуживания ваших запросов, файл "htaccess" сообщает Apache URI приложения, Каталог приложений (App Directory) и версию Python (расположение), настроенную в cPanel.
Приложение Flask
Приложение Flask очень простое, но я добавил волшебную линию, которая делает еще проще работу Flask ((application = app). Сценарий passenger_wsgi будет искать код приложения в переменной под названием "application", а не "app", как используется в Flask при его разработке.
from
flask
import
Flask
app
=
Flask(__name__)
application
=
app
# наш хостинг требует применения в passenger_wsgi
@app
.route(
"/"
)
def
hello():
return
"This is Hello World!\n"
if
__name__
=
=
"__main__"
:
app.run()
Файл Passenger WSGI
Этот файл, созданный cPanel также довольно прост, он будет загружать "myapp.py источник и передать его passenger'у в "application" объекта. Да, я слышу ваш вопрос: "почему я просто не использовал "app" здесь вместо создания избыточного объекта "application" в myapp.py"?. Потому что однажды, когда по пьяни вы снова запустите этот скрипт в cPanel, который перезапишет этот файл, вы вырвите себе все волосы, пытаясь понять, почему вы продолжаете получать ошибку "application doesn't exist (приложения не существует)".
import
imp
import
os
import
sys
sys.path.insert(
0
, os.path.dirname(__file__))
wsgi
=
imp.load_source(
'wsgi'
,
'myapp.py'
)
application
=
wsgi.application
Файл .htaccess
Наконец, файл, который говорит Apache, что это приложение Python, где он находиться и где можно найти Python .
.htaccess
PassengerAppRoot "/home/roberto/public_html/exampleapppython"
PassengerBaseURI "/exampleapppython"
PassengerPython "/home/roberto/virtualenv/public__html_exampleapppython/2.7/bin/python2.7"
Резюме
Войдите в cPanel, найдите ссылку "Настройка Python приложений", настройте свой URI и расположение приложения, нажмите "setup", установите нужные модули, например модуль" Flask". Это создаст базовое приложение. Создайте приложение Flask и привяжите его к "application". Вы закончили!
Еще полезная ссылка по теме https://blog.ouseful.info/2016/09/17/creating-a-simple-python-flask-app-running-on-reclaim-hosting/