Flask (веб-фреймворк) - Flask (web framework)

Колба
Flask logo.svg
Разработчики) Армин Ронахер
Первый выпуск 1 апреля 2010 г . ; 11 лет назад ( 2010-04-01 )
Стабильный выпуск
2.0.1  Отредактируйте это в Викиданных / 21 мая 2021 г . ; 4 месяца назад ( 21 мая 2021 г. )
Репозиторий github .com / поддоны / колба
Написано в Python
Тип Веб-фреймворк
Лицензия BSD
Веб-сайт palletsprojects .com / p / flask /

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

Приложения, использующие фреймворк Flask, включают Pinterest и LinkedIn .

История

Flask был создан Армином Ронахером из Pocoo, международной группы энтузиастов Python, сформированной в 2004 году. По словам Ронахера, идея изначально была первоапрельской шуткой, которая была достаточно популярной, чтобы превратить ее в серьезное приложение. Название - игра на основе более ранней структуры Bottle .

Когда Ронахер и Георг Брандл создали систему досок объявлений, написанную на Python, были разработаны проекты Pocoo Werkzeug и Jinja .

В апреле 2016 года команда Pocoo была расформирована, а разработка Flask и связанных библиотек перешла к недавно сформированному проекту Pallets.

Flask стал популярным среди энтузиастов Python. По состоянию на октябрь 2020 года он занимает второе место по количеству звезд на GitHub среди фреймворков веб-разработки Python, лишь немного уступая Django, и был признан самым популярным веб-фреймворком в опросе разработчиков Python 2018.

Компоненты

Микрофреймворк Flask является частью Pallets Projects (ранее Pocoo ) и основан на нескольких других из них.

Werkzeug

Werkzeug (по- немецки «инструмент») представляет собой служебную библиотеку для языка программирования Python, другими словами, набор инструментов для приложений интерфейса шлюза веб-сервера (WSGI), и распространяется под лицензией BSD . Werkzeug может реализовать программные объекты для функций запроса, ответа и служебных программ. Его можно использовать для создания пользовательской программной среды на его основе и поддерживает Python 2.7 и 3.5 и более поздние версии .

Джиндзя

Jinja, также созданный Ронахером, представляет собой шаблонизатор для языка программирования Python и распространяется под лицензией BSD. Подобно веб-фреймворку Django , он обрабатывает шаблоны в песочнице .

MarkupSafe

MarkupSafe - это библиотека обработки строк для языка программирования Python, лицензированная по лицензии BSD. Одноименный тип MarkupSafe расширяет строковый тип Python и отмечает его содержимое как «безопасное»; комбинирование MarkupSafe с обычными строками автоматически экранирует немаркированные строки, избегая двойного экранирования уже отмеченных строк.

Это опасно

ItsDangerous - это безопасная библиотека сериализации данных для языка программирования Python, лицензированная по лицензии BSD. Он используется для хранения сеанса приложения Flask в файле cookie, не позволяя пользователям изменять содержимое сеанса.

Функции

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

Пример

В следующем коде показано простое веб-приложение, отображающее « Hello World !». при посещении:

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello() -> str:
    return "Hello World"


if __name__ == "__main__":
    app.run(debug=False)

Смотрите также

использованная литература

внешние ссылки