Flask — это микровеб -фреймворк, написанный на Python . Он классифицируется как микрофреймворк , поскольку не требует специальных инструментов или библиотек. [2] Он не имеет уровня абстракции базы данных , проверки форм или любых других компонентов, где существующие сторонние библиотеки предоставляют общие функции. Однако Flask поддерживает расширения, которые могут добавлять функции приложения, как если бы они были реализованы в самом Flask. Существуют расширения для объектно-реляционных картографов , проверки форм, обработки загрузок, различных технологий открытой аутентификации и нескольких общих инструментов, связанных с фреймворком. [3]
Приложения, использующие фреймворк Flask, включают Pinterest и LinkedIn . [4] [5]
Flask был создан Армином Ронахером из Pocoo, международной группы энтузиастов Python, образованной в 2004 году. [6] По словам Ронахера, изначально эта идея была первоапрельской шуткой, которая оказалась достаточно популярной, чтобы превратиться в серьезное приложение. [7] [8] [9] Название является отсылкой к более раннему фреймворку Bottle. [7]
Когда в 2004 году Ронахер и Георг Брандл создали систему досок объявлений, написанную на Python, были разработаны проекты Pocoo Werkzeug и Jinja . [10]
В апреле 2016 года команда Pocoo была расформирована, а разработка Flask и связанных с ним библиотек перешла в недавно сформированный проект Pallets. [11] [12] С 2018 года данные и объекты, связанные с Flask, можно визуализировать с помощью Bootstrap . [13]
Flask стал популярен среди энтузиастов Python. По состоянию на октябрь 2020 года [update]он занимает второе место по количеству звезд на GitHub среди фреймворков веб-разработки Python, лишь немного уступая Django [14] , и был признан самым популярным веб-фреймворком в опросе разработчиков Python за годы с 2018 по 2022 год включительно. [15] [16] [17] [18] [19]
Микрофреймворк Flask является частью проекта Pallets (ранее Pocoo ) и основан на нескольких других проектах, все под лицензией BSD .
Werkzeug ( нем. «инструмент») — это библиотека утилит для языка программирования Python для приложений Web Server Gateway Interface (WSGI). Werkzeug может создавать экземпляры объектов для функций запроса, ответа и утилит. Она может использоваться в качестве основы для пользовательского фреймворка программного обеспечения и поддерживает Python 2.7 и 3.5 и более поздние версии. [20] [21]
Jinja, также от Ronacher, — это шаблонизатор для языка программирования Python. Подобно веб-фреймворку Django, он обрабатывает шаблоны в песочнице .
MarkupSafe — это библиотека обработки строк для языка программирования Python. Одноименный тип MarkupSafe расширяет тип строки Python и помечает его содержимое как «безопасное»; объединение MarkupSafe с обычными строками автоматически экранирует неотмеченные строки, избегая при этом двойного экранирования уже отмеченных строк.
ItsDangerous — это безопасная библиотека сериализации данных для языка программирования Python. Она используется для сохранения сеанса приложения Flask в cookie-файле, не позволяя пользователям изменять содержимое сеанса.
Следующий код демонстрирует простое веб-приложение, которое при посещении отображает « Hello World !»:
из flask импортировать Flask приложение = Flask ( __name__ )@app . route ( "/" ) def hello () -> str : return "Привет, мир"если __name__ == "__main__ " : приложение.run ( )