🏠 | 💻 IT | Flask |

Как настроить на хостинге flask

Эта статья именно про запуск на виртуальном хостинге.

Про деплой на своём сервере есть отдельная статья:

«Запуск Flask приложения на сервере Linux (Nginx + Gunicorn)»

Конечно, многое зависит от хостинга но основные проблемы, думаю, везде одинаковые.

Flask на хостинге

Введение

В интернете очень много статей о том как запустить Flask локально. Но мало руководств по настройке на виртуальном хостинге. За материал к этому руководству, я благодарю техподдержку хостинга beget.ru их статью о настройке Flask на хостинге можете изучить здесь

Подробнее о выборе хостинга читайте в моей статье «Как выбрать хостинг»

Начало работы с Flask на хостинге

Подключаемся к аккаунту на хостинге через ssh. Для этого можно использовать Putty или MobaXterm

Подключиться к аккаунту проще всего по IP. Чтобы его узнать - выполнить

ping url_сайта

Если на Вашем хостинге установлен 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
Python
Flask
Запуск Flask на Linux сервере
Первый проект на Flask
Шаблоны Jinja
Flask FAQ

Если остались вопросы - смело задавайте их в комментариях.

Поиск по сайту
Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящуюю по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: