Flask - это микрофреймворк для веб-разработки, написанный на языке Python. Он прост в освоении и использовании. Flask дружелюбен к новичкам, поскольку в нем нет шаблонного кода и зависимостей, а вся логика приложения может уместиться в рамках одного файла.
Для установки и создания веб-приложения Flask на виртуальном хостинге потребуется выполнить следующие действия, описанные ниже. Установка Flask осуществляется посредством протокола SSH.
Установка фреймворка
Создайте виртуальное окружение:
Активируйте его:
После активации в начале строки терминала появится имя окружения:
Установите Flask:
В следующем шаге необходимо перейти в корневую директорию сайта, где будет расположен сам проект:
где /home/u/username/site1/public_html - корневая директория сайта. Корневую директорию сайта можно посмотреть в разделе Сайты.
Далее потребуется создать файл app.py, в котором будет описана логика приложения. В файл потребуется добавить следующее содержимое:
def index():
return "<h1>Приложение Flask в Spaceweb!</h1>"
app.run(host='0.0.0.0')
Следующим шагом потребуется создать файл wsgi.py, и добавить в него следующее:
import os,sys
sys.path.append('/home/u/username/site1/public_html')
#путь к фреймворку
sys.path.append('/home/u/username/site1')
#путь к виртуальному окружению
sys.path.append('/home/u/username/.flaskvenv/lib/python3.11/site-packages/')
#исключить системную директорию
sys.path.remove('/usr/lib/python3.11/site-packages')
application = app
Также потребуется создать в корне проекта файл .htaccess и добавить в него:
AddHandler wsgi-script .py
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ wsgi.py/$1 [QSA,L]
Для того чтобы изменения вступили в силу, необходимо выполнять перезапуск Flask:
- перейдите в панель управления аккаунта, раздел Хостинг - Сайты
- выберите нужный сайт
- в колонке Конфигурация нажмите на ссылку "Настройки"
- и выберите текущую версию бэкэнда "Apache 2.4 + PHP 8.3 + mod_wsgi python3.11 (Актуальная версия)"
- сохраните.
В этом случае Flask будет перезапущен и изменения будут приняты системой.