Flask
| Тип | Вебфреймворк |
|---|---|
| Розробник | Армін Ронакер |
| Стабільний випуск | 1.0.2 (2 травня 2018[1]) |
| Операційна система | Cross-platform |
| Мова програмування | Python |
| Ліцензія | BSD |
| Онлайн-документація | flask.palletsprojects.com(англ.) |
| Репозиторій | github.com/pallets/flask |
| Вебсайт | flask.pocoo.org |
Flask — мікрофреймворк для вебдодатків, створений з використанням Python. Його основу складає інструментарій Werkzeug та рушій шаблонів Jinja2. Поширюється відповідно до умов ліцензії BSD.
Станом на лютий 2022 року стабільна версія Flask має номер 2.02.[2] Flask використовується для розробки таких проєктів як Pinterest,[3] LinkedIn,[4] а також сторінка спільноти Flask.[5]
Flask називається мікрофреймворком, оскільки він не вимагає спеціальних засобів чи бібліотек.[6] У ньому відсутній рівень абстракції для роботи з базою даних, перевірки форм або інші компоненти, які надають широковживані функції за допомогою сторонніх бібліотек. Однак, Flask має підтримку розширень, які надають додаткові властивості таким чином, наче вони були доступні у Flask із самого початку. Існують розширення для встановлення об'єктно-реляційних зв'язків, перевірки форм, контролю процесу завантаження, підтримки різноманітних відкритих технологій аутентифікації та декількох поширених засобів для фреймворку. Розширення оновлюються частіше аніж базовий код.[7]
Flask створено Арміном Ронакером у 2010 році в межах діяльності проєкту Pocoo.[8]
| «Все починалося як першоквітневий жарт, проте, здобувши велику популярність, проєкт став повноцінним серйозним додатком.» | ||
— Ronacher, Armin. Opening the Flask (PDF). Архів оригіналу (PDF) за 30 березня 2012. Процитовано 30 вересня 2011. | ||
Оригінал: It came out of an April Fool's joke but proved popular enough to make into a serious application in its own right.[9]
Flask базується на засобі Werkzeug (реалізація WSGI) та рушії шаблонів Jinja2, які були створені як проєкти Pocoo у 2007 та 2008 роках відповідно, коли Ронакер і Ґеорґ Брандл розробляли систему дошки оголошень на Python.[10]
Попри відсутність офіційного релізу на той час, Flask швидко здобув популярність серед спільноти Python. Станом на середину 2016 року він був найпопулярнішим Python-вебфреймворком на GitHub.[11]
Flask не підтримує асинхронне програмування та бібліотеки, що його використовують. Для цього було створено форк під назвою Quart.[12]
- Містить сервер для розробки та відлагоджувач
- Вбудована підтримка юніт-тестів
- Управління запитами RESTful
- Використовує шаблони Jinja2
- Має підтримку безпечних куків (сесії на стороні клієнта)
- 100 % відповідність WSGI 1.0
- Підтримка Unicode
- Докладна документація
- Сумісність з Google App Engine
- Наявність розширень для забезпечення бажаної поведінки
Werkzeug (в перекладі з німецької «інструмент») — бібліотека на python, яка реалізує WSGI. Може створювати об'єкти request, response та має набір допоможних функцій.
Jinja це рушій шаблонів для python, також розроблений Арміном Ронакером. Схожий на Django-шаблонізатор.
MarkupSafe це бібліотека для обробки рядків для мови програмування python. Реалізує тип даних MarkupSafe, який розширює рядок, помічає його вміст як «безпечний» що дозволяє спростити обробку рядків, які потребують екранування в HTML, щоб той текст не був інтепретований HTML-теги, тощо.
ItsDangerous — серіалізатор рядків для мови програмування python. Використовується для того щоб зберігати сессії в cookie, не дозволяючи користувачам їх перехоплювати та змінювати.
Даний код демонструє простий вебдодаток, який показує фразу «Hello World!»:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run()
- ↑ Архівована копія. Архів оригіналу за 22 серпня 2017. Процитовано 23 травня 2017.
{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання) - ↑ PyPI Flask. Python Package Index. 27 червня 2016. Архів оригіналу за 22 серпня 2017. Процитовано 27 червня 2015.
- ↑ What challenges has Pinterest encountered with Flask?
- ↑ Rachel Sanders: Developing Flask Extensions - PyCon 2014. Архів оригіналу за 31 липня 2017. Процитовано 23 травня 2017.
- ↑ Community web page for Flask. Архів оригіналу за 5 січня 2018. Процитовано 1 червня 2021.
- ↑ Flask Foreword. Архів оригіналу за 10 листопад 2015. Процитовано 23 травень 2017. [Архівовано 2015-11-10 у Wayback Machine.]
- ↑ Flask Extensions. Архів оригіналу за 17 травня 2018. Процитовано 23 травня 2017.
- ↑ Pocoo team. Архів оригіналу за 10 листопада 2015. Процитовано 23 травня 2017. [Архівовано 15 березня 2018 у Wayback Machine.]
- ↑ Ronacher, Armin. Opening the Flask (PDF; 2,8 MB). Процитовано 22 травня 2012.
- ↑ Pocoo History. Архів оригіналу за 15 листопада 2015. Процитовано 23 травня 2017. [Архівовано 19 листопада 2017 у Wayback Machine.]
- ↑ Python libraries by GitHub stars. Архів оригіналу за 29 липня 2017. Процитовано 23 травня 2017.
- ↑ Quart documentation — Quart 0.18.3 documentation. quart.palletsprojects.com. Процитовано 16 лютого 2023.
