Как настроить на хостинге flask
Введение
Эта статья именно про запуск на виртуальном хостинге.
Про деплой на своём сервере есть отдельная статья:
«Запуск Flask приложения на сервере Linux (Nginx + Gunicorn)»
Конечно, многое зависит от хостинга но основные проблемы, думаю, везде одинаковые.
Flask на хостинге
В интернете очень много статей о том как запустить Flask локально. Но мало руководств по настройке на виртуальном хостинге.
За материал к этому руководству, я благодарю техподдержку хостинга
beget.ru
их статью о настройке
Flask
на хостинге можете изучить
здесь
Начало работы с Flask на хостинге
Подключаемся к аккаунту на хостинге через ssh. Для этого можно использовать терминал,
Putty
или
MobaXterm
Подключиться к аккаунту проще всего по имени домена
ssh username@your_domain.ru
Можно подключиться и по IP. Чтобы его узнать - выполнить
ping your_domain.ru
ssh username@ip
Если на Вашем хостинге установлен Docker - перейдите в контейнер командой
ssh localhost -p222
Если это beget.ru , либо узнайте как это сделать на вашем хостинге, задав вопрос в техподдержку.
Создадим простейшее web приложение в корне вашего сайта.
Если у Вас на сайте уже есть папка public_html - сохраните её куда-нибудь в надёжное место и удалите
с сайта.
Начинаем в абсолютно пустой директории.
Создаём две папки HelloFlask и tmp
mkdir HelloFlask tmp
Создаём два файла в корневой директории .htaccess и passenger_wsgi
touch .htaccess
touch passenger_wsgi.py
Если Вы умеете редактировать файлы на хостинге - продолжайте читать эту статью.
Если это вызывает проблемы - прочитайте мою статью
«Текстовый редактор vi»
В файле .htaccess пишем
PassengerEnabled On
PassengerPython /home/a/username/.local/bin/python3
Причём /home/a/username/.local/bin/python3 Вам нужно будет заменить на путь
до Вашего python3.
Чтобы его узнать выполните
which python3
С файлом .htaccess разобрались, теперь редактируем passenger_wsgi.py
# -*- coding: utf-8 -*-
import sys, os
# указываем директорию с проектом
sys.path.append('/home/a/username/aredel.com/HelloFlask')
# указываем директорию с библиотеками, куда поставили Flask
sys.path.append('/home/a/username/.local/bin/flask')
from HelloFlask import app as application
# Когда Flask стартует, он ищет application.
# Если не указать 'as application', сайт не заработает
from werkzeug.debug import DebuggedApplication
# Опционально: подключение модуля отладки
application.wsgi_app = DebuggedApplication(application.wsgi_app, True)
# Опционально: включение модуля отадки
application.debug = False
# Опционально: True/False устанавливается по необходимости в отладке
Где /home/a/username/aredel.com/ нужно заменить на адрес Вашего сайта от корня хостинга.
С файлом passenger_wsgi.py разобрались, переходим в папку HelloFlask
cd HelloFlask
Создаём там файл __init__.py
touch __init__.py
И пишем там
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello Flask!'
if __name__ == '__main__':
app.run()
С файлом __init__.py разобрались, возвращаемся в корневую директорию
cd ..
И выполняем
ln -s public_html public
touch tmp/restart.txt
Открывайте Ваш сайт и убедитесь, что там написано Hello Flask!
Когда Вы внесете какие-то обновления не забудьте после сохранения
выполнять перезагрузку командой.
touch tmp/restart.txt
Если Вы ещё не определилсь с выбором хостинга советую прочитать мою статью
«Какой хостинг выбрать»
Python | |
Flask | |
Запуск Flask на Linux сервере | |
Первый проект на Flask | |
Шаблоны Jinja | |
Web Forms | |
Blueprint - Чертежи Flask | |
Как разбить приложение Flask на части | |
Flask FAQ | |
Ошибки |