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

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

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

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

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

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

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

Для запуска Flask-приложения (нового сайта) создадим новое виртуальное окружение, активируем и установим в него Flask:

/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 flask_app.hello import app as application

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

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