http://www.1gb.ua/wiki/index.php?title=Flask_-_%D0%B1%D1%8B%D1%81%D1%82%D1%80%D1%8B%D0%B9_%D1%81%D1%82%D0%B0%D1%80%D1%82&limit=20&action=history&feed=atom
Flask - быстрый старт - История изменений
2024-03-29T00:58:50Z
История изменений этой страницы в вики
MediaWiki 1.10.1
http://www.1gb.ua/wiki/index.php?title=Flask_-_%D0%B1%D1%8B%D1%81%D1%82%D1%80%D1%8B%D0%B9_%D1%81%D1%82%D0%B0%D1%80%D1%82&diff=5544&oldid=prev
Renton: /* Настройка приложения */
2020-05-05T14:58:58Z
<p><span class="autocomment">Настройка приложения</span></p>
<p><b>Новая статья</b></p><div>== Обшие сведения ==<br />
'''Flask''' - фреймворк для создания веб-приложений, использующий концепцию микроядра.<br /><br />
В статье будет описано, как настроить и запустить Flask на виртуальном хостинге '''1Gb.ru''' в режиме standalone WSGI приложения.<br />
<br />
== Подготовка окружения ==<br />
'''1.''' В разделе личного кабинета <span style="display: inline-block; margin: 0 .1em; padding: .1em .6em; font-family: Arial; font-size: 11px; line-height: 1.4; color: maroon; text-shadow: 0 1px 0 #FFF; background-color: #e1e3e5; border: 1px solid #adb3b9; border-radius: 3px; box-shadow: 0 1px 0 rgba(12,13,14,0.2),0 0 0 2px #FFF inset; white-space: nowrap;">полный список функций</span> -> <span style="display: inline-block; margin: 0 .1em; padding: .1em .6em; font-family: Arial; font-size: 11px; line-height: 1.4; color: maroon; text-shadow: 0 1px 0 #FFF; background-color: #e1e3e5; border: 1px solid #adb3b9; border-radius: 3px; box-shadow: 0 1px 0 rgba(12,13,14,0.2),0 0 0 2px #FFF inset; white-space: nowrap;">HTTP службы</span> добавьте поддержку WSGI/Gunicorn для сайта сайта (если сайта у вас ещё нет, то предварительно создайте его с главной страницы личного кабинета по ссылке <span style="display: inline-block; margin: 0 .1em; padding: .1em .6em; font-family: Arial; font-size: 11px; line-height: 1.4; color: maroon; text-shadow: 0 1px 0 #FFF; background-color: #e1e3e5; border: 1px solid #adb3b9; border-radius: 3px; box-shadow: 0 1px 0 rgba(12,13,14,0.2),0 0 0 2px #FFF inset; white-space: nowrap;">Зарегистрировать, привязать домен и создать сайт</span> [http://www.1gb.ru/163 [[Изображение:Blank.gif]]], тип сервера любой).<br />
<br />
[[Изображение:Django-new-1.jpg|600px|thumb|left|добавление службы WSGI]]<br clear="both" /><br />
<br />
'''2.''' Установка Flask будет осуществлятся в виртуальном окружении. Зайдите на сервер по [http://www.1gb.ru/putty SSH] и запустите команду:<br />
$ /opt/hostpublic/sbin/1gb_virtenv_install.sh<br />
<br />
'''2.1.''' Укажите нужную версию Python (по умолчанию ставится stable версия из ветки 3.x):<br />
Install latest Python 2.x or 3.x release (choices: 2, 3, 3.2, 3.3, 3.4) [default '''3''']:<br />
<br />
Установка занимает несколько минут.<br /><br /><br />
<br />
'''2.2.''' Далее команда спросит имя папки куда будет установлен пакет virtualenv. Этот параметр не принципиален, например, введите flask-env<br />
Enter the name of new virtual environment you want to create [default: '''django-env''']:<br />
<br />
Результатом работы команды 1gb_virtenv_install.sh будет установленный в папку ~/local Python и пакет virtualenv, а также виртуальное окружение из которого будет запускаться Flask.<br /><br /><br />
<br />
'''2.3.''' Укажите название фреймворка, flask:<br />
What framework are you going to use (example: django, pylons, flask) [default django]:<br />
<br />
'''3.''' Все последующие команды будут выполняться из виртуального окружения. Для активации окружения выполните команду:<br />
$ source ~/.bashrc<br />
$ v_activate<br />
<br />
'''4.''' Устанавливаем web-сервер и flask<br />
(flask-env) $ pip install gunicorn; pip install Flask<br />
<br />
== Настройка приложения ==<br />
'''1.''' Создайте папку, где будет размещаться ваше приложение, запомните это имя, далее оно нам понадобится<br />
(flask-env) $ mkdir ~/'''mysite''' && cd '''mysite'''<br />
<br />
и перейдём в эту папку:<br />
(flask-env) $ сd ~/'''mysite'''<br />
<br />
'''2.''' Создадим тестовое приложение "hello world", в файл '''myapp.py''' добавим содержимое:<br />
from flask import Flask<br />
'''app''' = Flask(__name__)<br />
<br />
@app.route("/")<br />
<br />
def hello():<br />
return """<br />
<style><br />
.block {<br />
font-size: 40px;<br />
height: 85%;<br />
width: 100%;<br />
position: fixed;<br />
display: flex;<br />
align-items: center;<br />
justify-content: center;<br />
color: #5e5e5e;<br />
background-image: url('<nowiki>https://static.1gb.ru/img/flask_logo.png</nowiki>');<br />
background-size: 25%;<br />
background-repeat: no-repeat;<br />
}<br />
</style><br />
<nowiki><div class='block'>Hello! I'm here.</div></nowiki><br />
"""<br />
<br />
обратите внимание на строку:<br />
'''app''' = Flask(__name__)<br />
'''app''' - это имя нашего приложения, запомните его.<br />
<br />
'''3.''' Далее в той же папке создадим диспетчер WSGI, файл wsgi.py<br />
from '''myapp''' import '''app'''<br />
<br />
if __name__ == "__main__":<br />
'''app'''.run()<br />
<br />
где:<br /><br />
'''myapp''' - имя папки, в котором находится наше приложение<br /><br />
'''app''' - имя приложения<br />
<br />
'''4.''' Теперь укажем веб-серверу, где размещается наше приложение и как оно называется, в формате:<br /><br />
<code>FLASK_PROJECT='''имя_папки'''</code><br /><br />
<code>FLASK_APP='''имя_приложения'''</code><br />
(flask-env) $ echo FLASK_PROJECT="'''mysite'''" > ~/.1gb_services/gunicorn/env<br />
(flask-env) $ echo FLASK_APP="'''app'''" >> ~/.1gb_services/gunicorn/env<br />
<br />
'''5.''' Запускаем приложение:<br />
(flask-env) $ ~/init.d/wsgi-app start<br />
<br />
Демо версия http://test-l25-flask.1gb.ru/<br />
<br />
== Решение проблем ==<br />
'''1.''' Как перезапустить сервер?<br />
$ ~/init.d/wsgi-app restart<br />
<br />
'''2.''' Где посмотреть ошибки работы приложения?<br />
$ less -n logs_gunicorn/error.log<br />
<br />
<br />
[[Категория:Программирование]]<br />
[[Категория:Python]]</div>
Renton