Flask

Введение

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

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

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

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

Содержание статьи
Введение
Установка
Пример веб-приложения, которое показывает «Hello World!»:
Простейший веб-сервер
Ошибки
Запуск Flask на хостинге
Первый проект на Flask
Запуск Flask на Linux сервере
Flask FAQ
Статьи о Python

Установка Flask

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

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

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

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

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()

Если Вы видите мануал без указания метода имейте в виду, что либо отвечать будет только на 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')

Ошибки

1

ImportError: cannot import name 'Flask' from partially initialized module 'flask' (most likely due to a circular import)

Эта ошибка возникает если Вы назвали свой файл flask.py. Переименуйте его во что-нибудь другое - например app.py

2

FileNotFoundError: [Errno 2] No such file or directory:

Эта ошибка возникает, например, если Вы хотите открыть файл в той же директории, что и скрипт в Windows, и думаете, что можно просто написать open('имя_файла')

Может быть где-то это прокатывает, но мне пришлось прописать полный путь до файла.

with open('C:\Users\Andrei\PycharmProjects\aredel_com\aredel_com_venv\aredel.json','r') as f:

3

UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 69: character maps to <undefined>

Скорее всего у вас в файле русский текст, а поддержка русского языка не подключена.

Статьи о Python
Программирование на Python
Опеределить тип переменной Python
Тестирование с помощью Python
Работа с REST API на Python
Selenium + Python
Сложности при работе с Python
DJANGO
Скрипт для ZPL принтера
Python Sockets
Виртуальное окружение

Если остались вопросы - смело задавайте их в комментариях.

Поиск по сайту
Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящуюю по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: