Flask (веб-фреймворк) - Flask (web framework)
Разработчики) | Армин Ронахер |
---|---|
Первый выпуск | 1 апреля 2010 г . |
Стабильный выпуск | |
Репозиторий | github |
Написано в | Python |
Тип | Веб-фреймворк |
Лицензия | BSD |
Веб-сайт | palletsprojects |
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)