Поиск:

Поиск по:

Результаты поиска по запросу «»
Найдено совпадений
По вашему запросу ничего не найдено
.
Показать еще

Запуск Flask на хостинге

В данной статье рассмотрена установка микрофреймворка Flask, который позволяет создавать простые сайты на языке Python.

Flask -- это легковесный веб-фреймворк на языке Python.

Flask на хостинге доступен на тарифах Лайт, Стандарт и Профи.

В данной статье будет описываться один из способов запуска фреймворка Flask на хостинге. Выполнение настроек на сервере будет производиться через протокол SSH. Для установки соединения можно воспользоваться программой PUTTY и инструкциями из статьи SSH-доступ.

Настройка virtualenv

Авторизовавшись на сервере, мы окажемся в своем домашнем каталоге. Внутри домашнего каталога располагаются каталоги ваших сайтов, а также служебные каталоги bin, etc, log и tmp.

Для облегчения работы с библиотеками и приложениями Python на хостинге мы воспользуемся дополнительным приложением virtualenv, который установлен на всех серверах хостинга. Инструмент virtualenv позволит нам создать собственное изолированное окружение Python:

virtualenv --system-site-packages ~/python

После выполнения указанной выше команды будет создан каталог python. Его содержимое выглядит следующим образом:

bin
include
lib

В директории python/bin находится исполняемый бинарный файл python и несколько дополнительных скриптов. В python/lib -- дерево каталогов, повторяющее оное у текущего установленного python в системе.

Для того чтобы код, написанный на языке python, работал в этом окружении, его нужно запускать, используя интерпретатор /home/uXXXX/python/bin/python, или воспользоваться следующими командами:

source ~/python/bin/activate
echo "source ~/python/bin/activate" >> ~/.bashrc

Установка Flask

Если вы уже активировали изолированное окружение, то установка может быть выполнена с помощью команды pip:

pip install Flask

Вместе с пакетом Flask будут автоматически установлены пакеты Werkzeug и Jinja2.

Проверка корректности установки

Проверьте, импортируется ли модуль flask.

python
>>> import flask
>>> flask.__version__
'0.9'
>>> flask.__file__
'/home/uXXXX/python/local/lib/python2.7/site-packages/flask/__init__.pyc'

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

Создание минимального проекта Flask

В принципе, не имеет значения, где именно будет расположен проект на Flask. Мы предлагаем расположить его в каталоге с именем сайта.

Проект на Flask может состоять всего из одного файла. Создайте файл ~/sitename.ru/myapp.py со следующим содержимым (пример скопирован с официального сайта проекта):

from flask import Flask
app = Flask(__name__)
# Раскомментировать для получения traceback
# app.debug = True

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run()

Поскольку Flask будет работать через интерфейс FastCGI, то для включения соответствующих настроек нам необходимо создать FastCGI-обработчик (враппер):

touch ~/sitename.ru/cgi-bin/flask-wrapper.fcgi && chmod 755 ~/sitename.ru/cgi-bin/flask-wrapper.fcgi

Созданный файл нужно заполнить следующим текстом:

#!/home/uXXXXX/python/bin/python
# -*- coding: utf-8 -*-
import sys, os

# Add a custom Python path.
sys.path.insert(0, "/home/uXXXXX/sitename.ru")

# Switch to the directory of your project. (Optional.)
# os.chdir("/home/uXXXXX/sitename.ru")

from flup.server.fcgi import WSGIServer
from myapp import app

if __name__ == '__main__':
    WSGIServer(app).run()

здесь:

  • uXXXXX -- имя вашего пользователя на сервере хостинга
  • myapp -- название созданного проекта

Обратите особое внимание на первую строку:

#!/home/uXXXXX/python/bin/python

Эта строка заставляет работать Python в созданном виртуальном окружении.

Теперь необходимо сообщить веб-серверу Apache о том, что для обработки поступающих запросов должен использоваться созданный ранее враппер. Создадим файл .htaccess в каталоге sitename.ru/www и запишем в него следующее указание:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ cgi-bin/flask-wrapper.fcgi/$1 [QSA,L]

Обратившись к сайту sitename.ru через браузер, мы должны увидеть приветственное сообщение от Flask. Это означает, что настройки выполнены правильно и можно приступать к работе с проектом.

Дополнительные замечания

  • На серверах хостинга у Вас не получится установить python-модуль, который содержит в себе компоненты, написанные на Си и компилирующиеся в процессе установки.
  • Чтобы перезапустить FastCGI-процесс после обновления кода, достаточно принудительно завершить все текущие FastCGI-процессы командой pkill -u uXXXX -f flask-wrapper.fcgi
  • Чтобы получить traceback ошибки в окно браузера, нужно для приложения установить флаг debug в True: app.debug = True

Регистрация доменов

в зонах .RU .РФ

от 200 рублей Зарегистрировать домен

SSL сертификаты

Подтверждение сайта и надежная защита

передаваемых данных

Купить сертификат

Облачные VDS

дешевле чашки кофе

Процессорных ядер: 4, Память: 4 Гб, Диск: 20 Гб SSD, Резервное копирование

от 35 р/день Заказать VDS

Все, что нужно от хостинга

Простое решение для вашего сайта

Подробнее

Хранилище данных

Храни что хочешь по смешным ценам

Почасовая оплата за размещенные данные.

Заказать хранилище