# Запуск Flask-приложения на Джино.Хостинге
Flask — фрэймворк для создания веб-приложений на языке Python. Минималистичный, обладающий базовым набором функций, Flask отлично подходит для создания небольших сайтов и приложений, не требующих большого количества ресурсов и подключаемых библиотек.
Рассмотрим запуск простого Flask-сайта на хостинге Джино.
Для запуска Flask-проектов на хостинге нужно создать новое виртуальное окружение для Python и затем загружать на сервер созданный на локальной машине проект.
Для загрузки проекта на сервер есть три основных способа:
- загрузка через протоколы передачи файлов (FTP, FTPS, SFTP);
- использование git-репозитория;
- деплой проекта с помощью инструментов, встроенных в IDE, с которой вы работаете.
Для запуска 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!. Если вместо этого выводится ошибка, проверьте, что:
- Услуга «Поддержка веб-приложений» подключена.
- Версия Python для домена (в разделе УправлениеНастройки веб-сервера) совпадает с той, что была указана при создании виртуального окружения.
- В файле passenger_wsgi.py указан правильный путь до интерпретатора Python.
- Файл hello.py находится в папке домена — там же, где и passenger_wsgi.py.
- После внесения изменений вы перезагрузили веб-сервер для вашего домена в разделе УправлениеНастройки веб-сервера.
- Ваш хостинг-контейнер имеет версию JH04 или выше (версия контейнера указана в разделе УправлениеТехническая информация).