Для запуска фреймворка Flask на виртуальном хостинге необходимо в первую очередь установить виртуальное окружение, после чего вы сможете установить саму библиотеку Flask с помощью pip.
Виртуальное окружение virtualenv — это инструмент, позволяющий создавать изолированные среды для отдельных проектов Python, решая тем самым проблему зависимостей и совместимости приложений разных версий. Подробнее о виртуальном окружении Python можно прочитать в официальной документации.
Шаг 1: Установка virtualenv
Установите и активируйте virtualenv по нашей инструкции.
Шаг 2: Установка Flask
- После активации
virtualenvустановите Flask с помощьюpip:
pip install flask
- Создайте директорию сайта, если она еще не существует:
mkdir -p имя_директории/public_html
- Перейдите в эту директорию:
cd имя_директории/public_html
- Создайте файл
.htaccess(например, с помощьюnano) и внесите в него следующее содержимое:
Options +ExecCGI
AddHandler wsgi-script .wsgi
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.wsgi/$1 [QSA,PT,L]
- Создайте файл
index.wsgiи внесите в него следующее содержимое. В строкеsys.path.appendукажите:
-
- корректный путь к директории с virtualenv, заменив
uиuserна первую букву вашего логина и сам логин; - корректную версию Python, в зависимости от ОС вашего сервера.
- корректный путь к директории с virtualenv, заменив
Для Ubuntu 18.04 используйте Python 3.6:
import os
import sys
sys.path.append('/home/u/user/venv/lib/python3.6/site-packages/')
from flask import Flask
app = Flask(__name__)
application = app
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == '__main__':
app.run()
Для Ubuntu 22.04 используйте Python 3.10:
import os
import sys
sys.path.append('/home/u/user/venv/lib/python3.10/site-packages/')
from flask import Flask
app = Flask(__name__)
application = app
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == '__main__':
app.run()
- Добавьте файлу
index.wsgiправа на исполнение:
chmod 755 index.wsgi
- Проверьте результат, вызвав ваш домен в браузере. Если все выполнено корректно, будет выведена строка «Hello, World!».