# Запуск Flask-приложения на Джино.Хостинге

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

Рассмотрим запуск простого Flask-сайта на хостинге Джино.

Для запуска Flask-проектов на хостинге нужно создать новое виртуальное окружение для Python и затем загружать на сервер созданный на локальной машине проект.

Для загрузки проекта на сервер есть три основных способа:

Для запуска Flask-приложения вам понадобятся подключённая услуга Поддержка веб-приложений. После её подключения в разделе УправлениеНастройки веб-сервера контрольной панели выберите для нужного вам домена необходимую версию Python.

# Создание виртуального окружения

Откройте консоль (УправлениеКонсоль в контрольной панели) и в домашней папке создайте новое виртуальное окружение, активируйте его и установите Flask:

cd ~
/opt/alt/python37/bin/virtualenv --python /opt/alt/python310/bin/python3 flask_venv
source ./flask_venv/bin/activate
pip install flask

# Output
#…
#Successfully installed Jinja2-3.1.2 MarkupSafe-2.1.1 Werkzeug-2.1.2 click-8.1.3 flask-2.1.2 itsdangerous-2.1.2

Здесь /opt/alt/python310/bin/python3 — путь к интерпретатору Python 3.10. Версия Python должна совпадать с той, которую вы выбрали на предыдущем шаге.

# Создание сайта на Flask

Создавать Flask-приложение можно в любой удобной для вас IDE.

Начнём с создания файла hello.py со следующим содержимым:

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello, World!"

if __name__ == "__main__":
    app.run()

Это Python-код, который выведет на главную страницу нашего сайта приветствие Hello, World!

После этого переходим к запуску приложения.

# Запуск Flask-приложения

Для запуска Flask-приложения на хостинге Джино его нужно деплоить на хостинг и создать файл passenger_wsgi.py для запуска Python-кода через mod_passenger.

Загрузите своё Flask-приложение на хостинг любым удобным для вас способом. Файлы приложения должны располагаться в папке domains в подпапке с доменным именем, на котором будет запускаться приложение (например: ~/domains/example.com)

После этого в папке с доменным именем создайте файл passenger_wsgi.py следующего содержания:

import sys, os

INTERP = os.path.expanduser("~/flask_venv/bin/python3")

if sys.executable != INTERP: os.execl(INTERP, INTERP, *sys.argv)

sys.path.append(os.getcwd())

from hello import app as application

После сохранения файла нужно перейти в раздел УправлениеНастройки веб-сервера и проверить, что версия интерпретатора совпадает с той, для которой создано виртуальное окружение. Здесь же перезагрузите веб-сервер.

Теперь, откройте браузер и укажите в адресной строке имя вашего сайта. Вы должны увидеть приветствие Hello, World!. Если вместо этого выводится ошибка, проверьте, что:

  1. Услуга «Поддержка веб-приложений» подключена.
  2. Версия Python для домена (в разделе УправлениеНастройки веб-сервера) совпадает с той, что была указана при создании виртуального окружения.
  3. В файле passenger_wsgi.py указан правильный путь до интерпретатора Python.
  4. Файл hello.py находится в папке домена — там же, где и passenger_wsgi.py.
  5. После внесения изменений вы перезагрузили веб-сервер для вашего домена в разделе УправлениеНастройки веб-сервера.
  6. Ваш хостинг-контейнер имеет версию JH04 или выше (версия контейнера указана в разделе УправлениеТехническая информация).