Flask что это за программа

Знакомство с Flask, Микрофреймворк на Python

Flask поможет вам ускорить разработку Python в ваших проектах.

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

  1. Легко устанавливается
  2. Поддерживается активным сообществом
  3. Хорошая документация
  4. Он очень прост и минималистичен, и не включает в себя ничего лишнего
  5. В то же время Flask достаточно гибкий, вы можете добавлять расширения, если вам нужно больше функциональности

В этом туториале мы рассмотрим следующее:

  1. Установка Flask
  2. Рекомендуемая структура файлов и директорий для Flask проекта
  3. Конфигурация и инициализация Flask приложения
  4. Создание представлений и шаблонов

К концу этого туториала мы создадим простой статический сайт с использованием Flask. Код, используемый тут доступен для ознакомления на github.

Изучение Flask / #1 — Создание веб сайтов на Python

Установка

Нам понадобится следующее для данного урока:

Возможно, у вас уже установлен Python. Вы можете проверить, запустив команду python в терминале. Если он установлен, вы увидите следующее:

Python 2.7.10 ( default , Oct 23 2015 , 19 : 19 : 21 )
[ GCC 4.2.1 Compatible Apple LLVM 7.0.0 ( clang — 700.0.59.5 ) ] on darwin
Type «help» , «copyright» , «credits» or «license» for more information .

Если он у вас еще не установлен, то скачать его можете здесь.

Мы начнем с установки виртуального окружения (virtualenv), это инструмент для создания изолированных окружений Python. Мы должны использовать виртуальные среды для поддержания зависимостей, используемых различными Python проектами, отдельными и, для сохранения нашей глобальной директории пакетов. Мы продвинемся сейчас на шаг вперед и установим virtualenvwrapper — это набор расширений, которые облегчают использование виртуального окружения, предоставляя простые команды.

$ pip install virtualenv
$ pip install virtualenvwrapper
$ export WORKON_HOME = ~ / Envs
$ source / usr / local / bin / virtualenvwrapper . sh

Чтобы создать и активировать виртуальное окружение, выполните следующие команды:

$ mkvirtualenv my — venv
$ workon my — venv

Теперь у нас есть виртуальное окружение, которое называется my-ven, которое мы активировали и уже работает. Теперь любая зависимость, которую мы установим будет установлена здесь, а не глобально. Не забывайте активировать виртуальное окружение, всякий раз когда вы хотите использовать или работать над этим проектом!

Далее, давайте создадим директорию для нашего приложения. Это то, где все наши файлы будут находится:

$ mkdir my — project
$ cd my — project

Наконец, давайте установим Flask:

$ pip install Flask

Во время установки Flask также установится несколько других зависимостей, которые вы увидите, когда выполните следующую команду:

Flask #1: Что это такое? Простое WSGI-приложение

$ pip freeze
Flask == 0.11.1
itsdangerous == 0.24
Jinja2 == 2.8
MarkupSafe == 0.23
Werkzeug == 0.11.11

Для чего все эти пакеты?

Flask использует Click (Command Line Interface Creation Kit) для интерфейса командной строки, который позволит вам добавить пользовательские команды оболочки для приложения.

ItsDangerous обеспечивает безопасность при передаче данных с помощью криптографического подписания.

Jinja2 — это мощный шаблонизатор для Python, в то время как MarkupSafe — библиотека для обработки HTML строк.

Werkzeug — это вспомогательная библиотека для WSGI, протокол, который обеспечивает эффективное общение веб-приложений и веб-серверов.

Вы можете сохранить результат в файле. Это хорошая практика, так как человеку, который захочет поработать над вашим проектом или запустить его, необходимо знать зависимости для установки. Следующая команда сохранит зависимости в файле requirements.txt:

Источник: dev-tricks.ru

Мега-Учебник Flask, Часть 1: «Привет, Мир!»

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

Моя предыстория

Я разработчик ПО с двузначным числом лет опыта разработки комплексных приложений на нескольких языках. Впервые я познакомился с Python для создания привязок к C++ библиотеке на работе. Вдобавок к Python, я писал веб-приложения на PHP, Ruby, Smalltalk и, верите вы или нет, еще на С++. Из всего этого, я нахожу комбинацию Python/Flask самой гибкой.

Приложение

Приложение, которое я собираюсь разрабатывать как часть этого руководства, является сервером микроблогов, и я решил назвать его microblog. Довольно креативно, я знаю.

Во время нашего прогресса я затрону следующие темы:

  • Управление пользователями, включая управление входами, сессиями, ролями пользователя, профилями и пользовательскими аватарами
  • Управление базой данных, включая миграцию
  • Поддержка форм, включая валидацию полей
  • Пагинация длинных списков элементов
  • Полнотекстовый поиск
  • E-mail уведомления пользователей
  • HTML шаблоны
  • Поддержка нескольких языков
  • Кеширование и другая оптимизация производительности
  • Методы отладки для серверов разработки и продакшна
  • Установка на продакшн сервер

Как видите, я весьма значительно берусь за все это. Надеюсь, что это приложение, когда я его закончу, станет чем-то вроде шаблона для написания других веб-приложений.

Требования

Если ваш компьютер поддерживает Python 2.6/2.7, то все, вероятно, пойдет хорошо. Приложение из руководства должно нормально работать на Windows, OS X и Linux.

Это руководство подразумевает, что вы знакомы с окном терминала (командной консолью в случае Windows), и вы знаете основные команды для работы с файлами вашей ОС. Если это не так, то перед тем как продолжить, я рекомендую вам ознакомиться с тем, как создавать директории, копировать файлы и т.д., используя консоль.

Читайте также:
Программа стата для чего

Наконец, вы должны чувствовать себя свободно в написании кода на Python. Знакомство с модулями и пакетами этого языка также не помешает.

Установка Flask

Ну что ж, приступим!
Если у вас еще не установлен Python 2.7, то берем его отсюда.

Теперь нам нужно установить Flask и несколько расширений, которые мы будем использовать. Я предпочитаю создание виртуального окружения, где все это будет установлено таким образом, что ваша основная установка Python затронута не будет. В качестве бонуса, вам не нужен будет root доступ для установки таким способом.

Итак, открываем терминал, выбираем место, где будет ваше приложение, и создаем новую папку, в которой оно будет содержаться. Назовем эту папку microblog .

Далее скачиваем virtualenv.py и кладем его внутрь новой папки.

Чтобы создать новое окружение введите следующую команду:

python virtualenv.py flask

Эта команда создаст полноценное окружение Python внутри папки flask

Виртуальные окружения могут быть активированы и деактивированы по желанию. Активированное окружение добавляет путь своей папки bin в path системы, например, когда вы вызываете интерпретатор python, то получаете версию текущего окружения, а не системную. Лично я никогда не любил это свойство, поэтому ни разу не активировал ни одно из моих окружений, вместо этого я просто вызывал тот интерпретатор, который хотел, печатая его путь.

Прим. пер.: Перед тем как вы начнете вводить команды, хочу отметить, что в комментариях к девятой части отметится баг в flask-whooshalchemy, исправленную версию можнонужно скачать отсюда (репозиторий автора)

Если вы пользователь Linux, OS x или Cygwin, установите flask и расширения, вводя следующие команды одну за одной:

Список команд

flask/bin/pip install flask==0.9 flask/bin/pip install flask-login flask/bin/pip install flask-openid flask/bin/pip install flask-mail flask/bin/pip install sqlalchemy==0.7.9 flask/bin/pip install flask-sqlalchemy==0.16 flask/bin/pip install sqlalchemy-migrate flask/bin/pip install flask-whooshalchemy==0.54a flask/bin/pip install flask-wtf==0.8.4 flask/bin/pip install pytz==2013b flask/bin/pip install flask-babel==0.8 flask/bin/pip install flup

Если же вы пользователь Windows, то команды слегка отличаются:
Список команд
flaskScriptspip install flask==0.9 flaskScriptspip install flask-login flaskScriptspip install flask-openid flaskScriptspip install sqlalchemy==0.7.9 flaskScriptspip install flask-sqlalchemy==0.16 flaskScriptspip install sqlalchemy-migrate flaskScriptspip install flask-whooshalchemy==0.54a flaskScriptspip install flask-wtf==0.8.4 flaskScriptspip install pytz==2013b flaskScriptspip install flask-babel==0.8 flaskScriptspip install flup

Эти команды скачают и установят все пакеты, которые мы будем использовать в нашем приложении.
Учтите, что мы собираемся использовать Flask 0.9, а не последнюю версию. Flask 0.10 не было довольно долго и некоторые расширения не готовы для работы с данной версией. Также есть несколько несовместимостей между пакетами и последней версией pip , которые решены использованием конкретных версий для установки.

Windows пользователей ждет еще один шаг. Наблюдательный читаель заметит, что в списке команд для Windows отсутствует flask-mail . Это расширение не устанавливается чисто на Windows, поэтому мы пойдем обходным путем:

flaskScriptspip install —no-deps lamson chardet flask-mail

Я не буду вдаваться в подробности, поэтому если вы хотите узнать больше, прочтите документацию к flask-mail.

Если установка всех пакетов прошла успешно, вы можете удалить virtualenv.py , поскольку файл нам больше не понадобится.

«Hello, World!» в Flask

Теперь у вас есть подпапка flask , в вашей папке microblog , содержащая интерпретатор Python и фреймворк Flask с расширениями, которые мы будем использовать в этом приложении. Настало время написать наше первое веб-приложение!

После того как вы переместились папку microblog , давайте создадим основную структуру папок для нашего приложения:

mkdir app mkdir app/static mkdir app/templates mkdir tmp

В папку app мы поместим само наше приложение. Подпапка static нужна для хранения статики, такой как картинки, javascript файлы и таблицы стилей. Подпапка templates , очевидно, предназначена для хранения наших шаблонов.

Давайте начнем с создания простого скрипта инициализации нашего пакета app (файл app/__init__.py )

from flask import Flask app = Flask(__name__) from app import views

Скрипт выше просто создает объект приложения (наследуя Flask ), затем импортирует модуль представлений, который мы еще не написали.

Представления — это обработчики, которые отвечают на запросы веб-браузера. Представления в Flask пишутся как Python функции. Каждая функция представления сопоставляется с одним или несколькими запросами URL.

Напишем нашу первую функцию представления (файл app/views.py )

Это весьма простое представление, которое просто возвращает строку для отображения в пользовательском браузере. Два декоратора route создают привязку адресов / и /index к этой функции.

Последним шагом для получения полностью работающего веб-приложения будет создание скрипта, который стартует веб-сервер нашего приложения. Давайте назовем скрипт run.py и положим его в корневой каталог ( microblog/ ):

#!flask/bin/python from app import app app.run(debug = True)

Скрипт просто импортирует переменную app из нашего пакета app и вызывает метод run для того, чтобы запустить сервер. Помните, что переменная app — экземпляр класса Flask , мы создали его выше.

Для запуска вашего приложения просто запустите скрипт. На OS X, Linux и Cygwin вам следует пометить файл исполняемым перед тем как вы сможете его запустить.

chmod a+x run.py

Тогда скрипт может быть вызван просто:

./run.py

В Windows процесс немного отличается. Нет необходимости помечать файл исполняемым. Вместо этого вам нужно запустить скрипт как аргумент интерпретатора Python:

flask/Scripts/python run.py

После старта сервер будет прослушивать порт 5000, ожидая соединений. Теперь откроем браузер и введем следующий URL в адресную строку:

Или же вы можете использовать эту ссылку:

http://localhost:5000/index

Теперь вы увидели маршрутизацию в действии? Первый URL привязан к / , в то время как второй к /index . Оба маршрута ассоциированы с нашей функцией представления, поэтому они дают одинаковый результат. Если вы введете любой другой маршрут, то получите ошибку, так как только эти два были привязаны к функции представления.

Читайте также:
Smart что это за программа и нужна ли она

Когда вы закончите играть с сервером вы можете просто нажать Ctrl-C, чтобы остановить его.

И этим я хочу закончить первую часть этого руководства.

Те из вас, кто поленился печатать, могут скачать код из этого руководства ниже:

Обратите внимание, что вам нужно установить Flask, чтобы запустить приложение из архива выше.

Что дальше

В следующей части серии мы изменим наше маленькое приложение для использования HTML шаблонов.

Надеюсь увидимся в следующей части.

Источник: habr.com

Почему вам стоит выбрать фреймворк Flask для своего следующего проекта

Максим Кузнецов

Обложка: Почему вам стоит выбрать фреймворк Flask для своего следующего проекта

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

Flask зависит от некоторых внешних библиотек — таких как Werkzeug и Jinja2.

Werkzeug — это инструментарий для WSGI, стандартного интерфейса Python между веб-приложениями и различными серверами. Он предназначен как для разработки, так и развёртывания.

DevOps-инженер (Мой МТС СНГ) МТС , Москва, можно удалённо , По итогам собеседования

Пример работы шаблонизатора Jinja2

Пример минимального приложения на Flask «Hello World!»:

Пример Hello World на Flask

Пример приложения с шаблонизатором на Flask:

Пример приложения на Flask

Встроенные фичи

  • Сервер разработки и отладчик
  • Интегрированная поддержка модульного тестирования
  • Отправка запросов RESTful
  • Использование шаблонизатора Jinja2
  • Поддержка безопасных файлов cookie (сеансы на стороне клиента)
  • 100% соответствие WSGI 1.0
  • Unicode
  • Обширная документация
  • Совместимость с Google App Engine
  • Расширения для улучшения желаемых функций

Применение Flask

Сообществом поддерживается серия пакетов-расширений для Flask. Их название обычно начинается с flask-, например, flask-login, flask-sqlalchemy, flask-wtf.

Flask является конструктором, поэтому все дополнительные фичи придётся устанавливать вручную. Фреймворк очень хорошо подходит для небольших проектов, работающих в основном со статическим контентом. Также подходит для создания микросервисов. Из-за отсутствия встроенного ORM позволяет выбрать подходящий под ваши нужды. Де-факто используют SqlAlchemy.

Flask 2.0

С мая 2021 года Flask начал обновляться и внедрять асинхронный режим работы. Синтаксис вы можете увидеть ниже:

Когда стоит использовать Flask

  1. Если нужен небольшой бэк.
  2. Если хотите сделать свой pet-проект.
  3. Если вы не знакомы с асинхронностью.
  4. Если хотите получить больше опыта и возможностей для обучения.
  5. Если вам нужно больше контроля над используемыми компонентами.
  • Документация Flask на английском языке
  • Документация Flask на русском языке

Источник: tproger.ru

Что это такое? Простое WSGI-приложение

Начиная с этого занятия мы с вами будем знакомиться с весьма популярным и фреймворком Flask, который позволяет создавать сайты самых разных типов с использованием языка Python. Flask относится к разряду микрофреймворков, то есть, он предоставляет лишь базовый инструментарий для построения сайтов, как говорится, все по минимуму – ничего лишнего. Однако, этого вполне достаточно, чтобы создавать большинство типовых сайтов с поддержкой шаблонов страниц, баз данных и прочими стандартными возможностями. И, кроме того, простота позволяет достаточно быстро разобраться в этом пакете и начать сразу его применять. Наверное, в этом его главная фишка – простота и достаточность функционала для типовых решений.

Для тех кто не совсем знаком с принципом взаимодействия между клиентом (браузером) и фреймворком, установленном на сервере, опишу в двух словах этот процесс.

Когда пользователь вводит в браузер строку запроса, например, vk.com, то от браузера отправляется запрос к серверу, где расположен и работает этот сайт. Здесь мы отложим в сторону вопрос маршрутизации и DNS-серверов, сейчас это неважно, главное, что сеть Интернет так устроена, что маршрутизаторы «знают» куда направлять запросы, если они относятся к работающим сайтам.

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

Но где же во всей этой схеме фреймворк? В действительности он установлен на сервере. Так как это обычный компьютер (ну может не совсем обычный, но принцип тот же), то на нем установлено соответствующее программное обеспечение. Мы, опять же, не будем здесь глубоко вдаваться в подробности, скажу лишь, что на них часто устанавливают Linux-подобные ОС (благодаря их надежности), затем программу под названием веб-сервер (часто это Apache или Nginx) и уже он отдает обработку запроса конкретному фреймворку:

Здесь WSGI (Web Server Gateway Interface) — стандарт взаимодействия между Python-программой, выполняющейся на стороне сервера, и самим веб-сервером, например Apache. Фактически, это интерпретатор Python, который запускает WSGI-приложение, написанное на Flask.

При поступлении запроса активизируется WSGI-приложение, выполняется определенный обработчик, который еще называется «Представление» и реализованный в виде функции на языке Python. Соответственно, если приходит сразу несколько запросов, то одна и та же функция-обработчик может быть запущена в параллельных потоках. Многопоточность – это норма для фреймворков, поэтому, работая с представлениями во Flask, всегда следует это учитывать.

Конечно, в рамках наших занятий мы не будем использовать удаленный сервер и устанавливать на него данный фреймворк – это отдельная задача. Кстати, современные хостеры предоставляют инструментарий для простой установки и настройки Flask. Поэтому этот процесс не представляет больших сложностей. А для изучения данного пакета на домашнем ПК от вас потребуется только его установить, используя установщик pip:

pip install Flask

Теперь мы можем написать свое первое WSGI-приложение. В самом простом варианте оно выглядит так:

from flask import Flask app = Flask(__name__) if __name__ == «__main__»: app.run(debug=True)

Вначале идет импорт класса Flask, который, фактически и формирует это приложение. Далее, мы создаем экземпляр этого класса и первым аргументом должны указать имя нашего приложения. Если вся программа пишется в одном файле, то следует передавать директиву __name__, которая в случае импорта будет содержать имя текущего файла, а в случае самостоятельного запуска – значение «__main__». Для Flask это имеет принципиальное значение, в частности, от этого зависит где искать подкаталоги с шаблонами и статичными документами.

Читайте также:
Play игры что это за программа на Андроид

После этого выполняется запуск фреймворка методом run и в качестве параметра указывается debug=True, чтобы мы в браузере видели все ошибки, которые будут возникать при разработке сайта-приложения. Конечно, после его создания, здесь следует прописать debug=False, чтобы случайные ошибки реальный пользователь уже не видел.

И, наконец, условие. Зачем оно? Смотрите, когда мы непосредственно запускаем наш модуль, то директива __name__ будет принимать значение «__main__» и будет запущен локальный веб-сервер для отладки текущего приложения. Если же модуль запускается, например, на удаленном сервере, то нам не нужно запускать еще один сервер.

В этом случае директива __name__ будет принимать имя данного модуля и строчка app.run выполнена не будет. То есть, мы это условие прописали с целью запуска приложения непосредственно на локальном устройстве.

Соответственно, как только фреймворк запущен, у нас активизируется локальный веб-сервер и мы можем в браузере создавать запрос, используя вот такой начальный адрес:

Давайте сделаем это и посмотрим, что получится. Наберем в браузере указанный запрос и видим, что запрашиваемая страница не найдена:

Все верно, так и должно быть, так как мы в программе не создали еще ни одного представления. Сделаем и это, добавим его:

Здесь используется специальный декоратор route, который создает обертку вокруг нашей функции index, которая будет активизироваться при обращении к главной странице сайта, то есть, по запросу http://127.0.0.1:5000/

Запустим программу, обновим страницу и теперь в браузере видим то, что возвратила функция index:

Часто к главной странице обращаются еще по index, то есть:

Чтобы одну и ту же страницу отобразить по нескольким URL-адресам, следует добавить несколько конструкций route:

Соответственно, для любого другого адреса мы также можем добавить свой отдельный обработчик, прописав еще один декоратор route:

Теперь на нашем сайте как бы две страницы: главная и /about – о сайте. Причем, наши обработчики возвращают HTML-документ и все теги будут соответственно отображаться на странице в браузере.

Итак, на этом занятии мы с вами сделали первые шаги в понимании работы Flask и построили очень простое WSGI-приложение.

Видео по теме

Flask #1: Что это такое? Простое WSGI-приложение

Flask #2: Использование шаблонов страниц сайта

Flask #3: Контекст приложения и контекст запроса

Flask #4: Функция url_for и переменные URL-адреса

Flask #5: Подключение внешних ресурсов и работа с формами

Flask #6: Мгновенные сообщения — flash, get_flashed_messages

Flask #7: Декоратор errorhandler, функции redirect и abort

Flask #8: Создание БД, установление и разрыв соединения при запросах

Flask #9: Добавление и отображение статей из БД

Flask #10: Способ представления полноценных HTML-страниц на сервере

Flask #11: Формирование ответа сервера, декораторы перехвата запроса

Flask #12: Порядок работы с cookies (куками)

Flask #13: Порядок работы с сессиями (session)

Flask #14: Регистрация пользователей и шифрование паролей

Flask #15: Авторизация пользователей на сайте через Flask-Login

Flask #16: Улучшение процесса авторизации (Flask-Login)

Flask #17: Загрузка файлов на сервер и сохранение в БД

Flask #18: Применение WTForms для работы с формами сайта

Flask #19: Обработка ошибок во Flask-WTF

Flask #20: Blueprint — что это такое, где и как использовать

Flask #21: Blueprint — подключение к БД и работа с ней

Flask #22: Flask-SQLAlchemy — установка, создание таблиц, добавление записей

Flask #23: Операции с таблицами через Flask-SQLAlchemy

Источник: proproprogs.ru

Flask 2.2.2

A simple framework for building complex web applications.

Ссылки проекта

Статистика

Метаданные

Лицензия: BSD License (BSD-3-Clause)

Сопровождающий: Pallets

Требует: Python >=3.7

Сопровождающие

Классификаторы

  • Development Status
  • 5 — Production/Stable
  • Web Environment
  • Flask
  • Developers
  • OSI Approved :: BSD License
  • OS Independent
  • Python
  • Internet :: WWW/HTTP :: Dynamic Content
  • Internet :: WWW/HTTP :: WSGI
  • Internet :: WWW/HTTP :: WSGI :: Application
  • Software Development :: Libraries :: Application Frameworks

Описание проекта

Flask is a lightweight WSGI web application framework. It is designed to make getting started quick and easy, with the ability to scale up to complex applications. It began as a simple wrapper around Werkzeug and Jinja and has become one of the most popular Python web application frameworks.

Flask offers suggestions, but doesn’t enforce any dependencies or project layout. It is up to the developer to choose the tools and libraries they want to use. There are many extensions provided by the community that make adding new functionality easy.

Installing

Install and update using pip:

$ pip install -U Flask

A Simple Example

$ flask run * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

Contributing

For guidance on setting up a development environment and how to make a contribution to Flask, see the contributing guidelines.

The Pallets organization develops and supports Flask and the libraries it uses. In order to grow the community of contributors and users, and allow the maintainers to devote more time to the projects, please donate today.

  • Documentation: https://flask.palletsprojects.com/
  • Changes: https://flask.palletsprojects.com/changes/
  • PyPI Releases: https://pypi.org/project/Flask/
  • Source Code: https://github.com/pallets/flask/
  • Issue Tracker: https://github.com/pallets/flask/issues/
  • Website: https://palletsprojects.com/p/flask/
  • Twitter: https://twitter.com/PalletsTeam
  • Chat: https://discord.gg/pallets

Источник: pypi.org

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru