5108

Как развернуть готовый проект на Flask/Bottle в Timeweb?

5 ответов

Доброго дня!

Подскажите, пожалуйста, способ разворачивания Flask/Bottle приложений на обычном шаред хостинге Timeweb? Возможно ли это?

Поясню: у клиента есть шаред (тариф битриксовый, Etherno) на Таймвебе, где куча его сайтов, и брать ещё отдельный VDS (особенно дорогущий от Таймвеба) и переносить всё туда — нет желания. Плюс у него там по eCommerce много завязано на текущий IP сервера (как-то так он сказал).

Видела тут в комьюнити про деплой Django, но этот способ не сработал для, например, Flask проекта. Точно так же, всё что предлагает гугл — выдаёт 500 ошибку. 

http://flask.pocoo.org/docs/0.12/deploying/cgi/ этот способ тоже попробовала, но тщетно.

Если есть реальный кейс, то поделитесь пожалуйста!

Ответы (5)

KeyJoo +2
30.11.2017 12:34
Почему-то в этом сообществе(Таймвэб) не принято делиться советами или решать актуальные проблемы... Очень вяло-текущий режим.
Oleg Ponomarchuk +1
01.03.2018 22:22
Актуально!
public_html/.htaccess:
Options +ExecCGI
AddHandler wsgi-script .wsgi
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.wsgi/$1 [QSA,PT,L]

public_html/index.wsgi:
activate_this = '/home/{user_char}/{user_name}/{path_to_venv}/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))
import sys
sys.path.insert(0, '/home/{user_char}/{user_name}/flask_test/')
from flask_test.app import app as application

структура проекта:
flask_test/:
-- flask_test/:
---- __init__.py
---- app.py
Добрый день! Получилось запустить Flask-проект на Python 3.4

может это кому-то поможет, я использовал следующие настройки:
public_html/.htaccess: (такой как и советовал Котов Артур Сергеевич)

Options +ExecCGI
AddHandler wsgi-script .wsgi
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.wsgi/$1 [QSA,PT,L]


public_html/index.wsgi: (тут заменен execfile на exec и добавлен путь к библиотекам в myenv)

activate_this = '/home/{user_char}/{user_name}/{path_to_venv}/bin/activate_this.py'
#execfile(activate_this, dict(__file__=activate_this))
exec(open(activate_this).read())
import sys
sys.path.insert(0, '/home/{user_char}/{user_name}/projectstar/public_html/projectstar/')
sys.path.insert(1, '/home/{user_char}/{user_name}/{path_to_venv}/lib/python3.4/site-packages/')
from app import app as application


структура проекта:
projectstar/:
-public_html/:
-- projectstar/:
---- __init__.py
---- app.py
Для bottle ->
---------- .htaccess -------------
Options +ExecCGI
AddHandler wsgi-script .wsgi
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.wsgi/$1 [QSA,PT,L]
--------- index.wsgi -------------
import os
import sys
BASE_DIR = '/home/c/[ ля ля ля ]/public_html' # путь до сайта
# Добавляем путь в переменные среды/переменное окружение
sys.path.append(BASE_DIR)
# делаем этот путь активным каталогом (т.е переходим в него)
os.chdir(BASE_DIR)
# $$$ Подключение виртуальной среды python (опционально)
# Указываем путь до активации виртуальной среды (замена source activate)
activate_this = BASE_DIR + '/env/bin/activate_this.py'
# Выполняем активацию
exec(open(activate_this).read())
# Добавляем путь в переменные среды пакеты python
sys.path.append(BASE_DIR + '/env/lib/python3.4/site-packages')
# $$$
# Bottle в данной конфигурации поставлен как свой пакет обычной копипастой(нужно если не использовать virtualenv)
from bottle.bottle import default_app
# Если используем virtualenv то устанавливаем окружение, заходим в него и ставим пакет bottle
# следовательно его подключение будет выглядеть так from bottle import default_app
# подключаем наш проект (стартовый файл)
from main import main
# загружаем приложение
application = default_app()

Похожие вопросы

Vitaly
566

Оптимизация изображений

В настройках включил "Оптимизацию изображений", все работает, но со временем при парсинге, начали появляться ошибки Подскажите есть ли решение?
Хасан Смирнов
272

Python: байт-строки на сервере

Проблема такая: Пишу на python 3.6, с помощью Flask, на локальном компе все нормально, а на хостинге все шаблоны страниц получают байты вместо строк. Да можно конвертировать в строки, но не все получается конвертировать, так как часть ошибок выскакивает...
Stanislav
1K

Подключение Django к MySQL

Доброго времени суток всем ) Пробую создать первый проект на Django, и сразу уперся в такой вопрос: Вся пока конфигурация стандартна, только что развернута. В файлу settings.py убираю настройки SQLite прописываю настройки MySQL: """ DATABASES...
С помощью соцсетей
У меня нет аккаунта Зарегистрироваться
Нажимая кнопку «Зарегистрироваться», я даю согласие на обработку своих персональных данных, указанных в форме регистрации.
С помощью соцсетей
У меня уже есть аккаунт Войти
Нажимая кнопку «Зарегистрироваться», я даю согласие на обработку своих персональных данных, указанных в форме регистрации.
Инструкции по восстановлению пароля высланы на Ваш адрес электронной почты.
Пожалуйста, укажите email, который Вы использовали для входа на сайт.