Flask
Материал из Xgu.ru
Flask — веб-фреймворк (микрофреймворк) для Python.
Несмотря на свой размер (он очень маленький и очень приятный), обладает большим количеством возможностей в числе которых:
- Поддержка языков шаблонов (Jinja2);
- Мощный отладчик кода (Werkzeug);
- Поддержка REST;
- Поддержка WSGI;
- Очень классная документация;
- Простота, мощь и красота.
Содержание |
[править] Простейший пример
from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hello World!" if __name__ == "__main__": app.run()
Запуск:
$ pip install Flask $ python hello.py * Running on http://localhost:5000/
Можно обращаться на порт 5000.
[править] Дополнительные модули
Полезные модули, которые можно использовать в сочетании с Flask:
- Pyxley (англ.) — построение dashboard'ов с помощью Flask и React
[править] Flask и AngularJS
- http://codehandbook.org/creating-an-angularjs-app-powered-by-python-flask-restful-api/
- http://codehandbook.org/angularjs-not-working-in-python-flask-web-app/
- http://codehandbook.org/python-rest-api-authentication-using-angularjs-app/
Другой пример:
[править] Вопросы и ответы
[править] Какие способы запуска flask-приложения существуют?
- Участник:RemiZOffAlex: Прошу дать элементарные примеры запуска web приложения (flask) как демона с проверкой уже загруженного процесса и возможностями перезагрузки. Так же, как если бы он был запущен через python3.4 run.py (НЕ WSGI).
Вариант 1: с помощью uwsgi
# pip3.4 install uWSGI # mkdir -p /var/run/uwsgi /var/log/uwsgi /etc/uwsgi/conf.d
Файл: /etc/uwsgi/conf.ini |
[uwsgi] emperor = /etc/uwsgi/conf.d uid = nginx gid = nginx logto = /var/log/uwsgi/uwsgi.log |
Файл: appname.ini |
[uwsgi] vassal_name = appname chdir = /data/www/appname # home = /data/www/appname socket = /var/run/uwsgi/appname.sock wsgi-file = /data/www/appname/appname.wsgi logto = /var/log/uwsgi/appname.log py-autoreload = 10 |
Файл: /etc/nginx/vhosts/appname.conf |
server { listen 8000; server_name appname.org; access_log /var/log/nginx/access-appname.org.log main; error_log /var/log/nginx/error-appname.org.log info; location / { include uwsgi_params; uwsgi_pass unix:///var/run/uwsgi/appname.sock; } } |
Файл: /etc/systemd/system/emperor.uwsgi.service |
[Unit] Description=uWSGI Emperor After=syslog.target [Service] ExecStart=/usr/bin/uwsgi --ini /etc/uwsgi/conf.ini Restart=always KillSignal=SIGQUIT Type=notify StandardError=syslog NotifyAccess=all [Install] WantedBy=multi-user.target |
[править] Дополнительная информация
- Flask (англ.) — домашняя страница
- The Flask Mega-Tutorial (англ.) — прекрасное руководство по Flask'у, с которого стоило было бы начать изучение фреймворка
- Going asynchronous: from Flask to Twisted Klein (англ.) — переход с Flask на Twisted Klein