Flask

Contents
Introduction
Статьи про Flask
Installation
Пример веб-приложения, которое показывает «Hello World!»:
Простейший веб-сервер
Статьи о Python

Introduction

Flask — фреймворк для создания веб-приложений на языке программирования Python, использующий набор инструментов Werkzeug, а также шаблонизатор Jinja2.

Относится к категории так называемых микрофреймворков — минималистичных каркасов веб-приложений, сознательно предоставляющих лишь самые базовые возможности.

Поддерживается установка посредством пакетного менеджера PyPI, версия 1.0 совместима с Python 2.7, Python 3.3 и выше.

Создатель и основной автор — австрийский программист Армин Ронахер, начал работу над проектом в 2010 году.

Статьи про Flask
Запуск Flask на хостинге
Первый проект на Flask
Запуск Flask на Linux сервере
Flask FAQ
Web Forms
Errors

Installation Flask

Installation Flask зависит от Вашего окружения. Если Вы работаете в IDE типа PyCharm, виртуальное окружение для Вашего проекта уже создано (см. здесь ).

Если Вы в «чистой» коносли, то обязательно создайте виртуальное окружение для проекта на Flask. О том как это сделать вы можете прочитать в цикле статей «Виртуальное окружение в Python»

Предполагается, что Python, Pip и virtualenv уже установлены.

Создайте новое виртуальное окружение, активируйте его и в нём execute

python -m pip install flask

Hello World

По умолчанию Flask отвечает на GET.

Создадим файл server.py со следующим кодом

from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hello World!" if __name__ == "__main__": app.run()

Не называйте свой файл flask.py это приведёт к ошибке.

Если Вы видите мануал без указания метода имейте в виду, что либо отвечать будет только на GET, либо автор изменил настройки по умолчанию.

Запустить файл server.py можно будет командой

python server.py

Но традиционно испльзуется flask run, про который я расскажу в уроке «Первый проект на Flask» .

Если в Вашем окружении установлен Flask то Вы увидите

* Serving Flask app "server" (lazy loading) * Environment: production WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Debug mode: off * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

Можете открыть браузер и ввести в строку поиска http://127.0.0.1:5000/

На экране должно появиться

Hello Flask!

А в консоли должно появиться

127.0.0.1 - - [15/Jun/2020 16:19:06] "GET / HTTP/1.1" 200 - 127.0.0.1 - - [15/Jun/2020 16:19:07] "GET /favicon.ico HTTP/1.1" 404 -

404 - так как я не добавил файл favicon.ico

Простой вебсервер на Flask

Создать такой элементарный сервер, который будет что-то отвечать на запросы бывает полезно, когда Вам нужно быстро протестировать приложение, которое прежде чем послать какую-то важную информацию запрашивает состояние сервера.

Вы можете ответить 200 и дальше слушать что присылает приложение.

Аналогичный функционал можно реализовать огромным количеством способов, например с помощью Soap UI

from flask import request from flask import Flask app = Flask(__name__) @app.route('/') def index(): return 'Hello world' @app.route('/bestws') def cakes(): return 'HeiHei.ru!' @app.route('/heiheiru/holidays', methods = ['GET']) def heiheiru_holidays(): timestamp = request.args.get('timestamp') print(f"Кто-то сделал GET запрос на heihei.ru и передал время {timestamp}") return '200' @app.route('/heiheiru/fests', methods = ['GET','PUT', 'POST']) def heiheiru_fests(): epc = request.args.get('epc') print(epc) antenna = request.args.get('antenna') print(antenna) timestamp = request.args.get('timestamp') print(timestamp) userMemory = request.args.get('userMemory') print(userMemory) return '200' if __name__ == '__main__': app.run(debug=True, host='0.0.0.0')

Статьи о Python
Development на Python
Интерактивный режим
Виртуальное окружение
str: строки
\: перенос строки
Списки
Циклы
Методы
Функции
*args **kwargs
enum
Опеределить тип переменной Python
Тестирование с помощью Python
Работа с REST API на Python
Файлы: записать, прочитать, дописать, контекстный менеджер…
Скачать файл по сети
SQLite3: работа с БД
datetime: Date and Time в Python
Selenium + Python
Сложности при работе с Python
DJANGO
Скрипт для ZPL принтера
socket :Python Sockets
subprocess: выполнение bash команд из Python
multiprocessing: несколько процессов одновременно
psutil: cистемные ресурсы
sys.argv: аргументы командной строки
PyCharm: IDE
pydantic: валидация данных
paramiko: SSH из Python
enumerate
json.dumps
Share in social media: