Flask на хостинге

Содержание
Введение
Подключение к серверу
.htaccess
passenger_wsgi
Другие статьи о Flask

Введение

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

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

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

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

Flask Logo

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

Если вы этого ещё не сделали - в корневой директории проекта выполните

touch .htaccess

В файле .htaccess напишите

PassengerEnabled On PassengerPython /home/a/username/.local/bin/python3

Причём /home/a/username/.local/bin/python3 Вам нужно будет заменить на путь до Вашего python3.

Чтобы его узнать выполните

which python3

С файлом .htaccess разобрались, теперь редактируем passenger_wsgi.py

passenger_wsgi

# -*- 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

Если Вы ещё не определилсь с выбором хостинга советую прочитать мою статью

«Какой хостинг выбрать»

Похожие статьи
Flask
Python
Запуск Flask на хостинге
Запуск Flask на Linux сервере
Первый проект на Flask
Шаблоны Jinja
Web Forms
Blueprint - Чертежи Flask
Как разбить приложение Flask на части
Flask FAQ
Ошибки
HTML
CSS
Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящуюю по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: