Flask
Flask | |
---|---|
Тып | Вэб-фрэймворк |
Распрацоўшчык | Армін Ронахер |
Напісана на | Python |
Аперацыйная сістэма | кросплатформавае праграмнае забеспячэнне |
Першы выпуск | 1 красавіка 2010 |
Апошняя версія | reference |
Рэпазіторый | github.com/pallets/flask/pallets/flask |
Ліцэнзія | BSD |
Сайт | palletsprojects.com/p/flask//p/flask/ |
Медыяфайлы на Вікісховішчы |
Flask (Фласк, англ.: flask — фляга) — гэта мікра вэб-фрэймворк, напісаны на мове Python. Ён класіфікуецца як мікрафрэймворк, пасколькі не патрабуе выкарыстання спецыяльных інструментаў альбо бібліятэк[1]. У ім няма пласта абстракцыі баз даных, валідацыі формаў і іншых кампанентаў, дзе агульныя функцыі падаюць ужо існыя бібліятэкі іншых распрацоўнікаў. Аднак Flask падтрымлівае пашырэнні, якія дазваляюць дадаваць функцыі вэб-праграмы так, як калі б яны былі рэалізаваны ў самым Flask. Існуюць пашырэнні для аб’ектна-рэляцыйных адлюстраванняў (англ.: object-relational mapping, ORM), праверкі формаў, апрацоўкі загрузак, розных адкрытых тэхналогій аўтэнтыфікацыі і шэрагу агульных інструментаў, звязаных з фрэймворкам[2].
Сярод вэб-сайтаў, якія выкарыстоўваюць Flask — Pinterest і LinkedIn[3][4].
Гісторыя
[правіць | правіць зыходнік]Flask быў створаны Армінам Ронахерам з Pocoo, міжнароднай групы энтузіястаў Python утворанай у 2004 годзе[5]. Па словах Ронахера, першапачаткова ідэя была першакрасавіцкім жартам, якая аказалася дастаткова папулярнай, каб ператварыцца ў сур’ёзную праграму[6][7][8]. Назва з’яўляецца гульнёй слоў з больш раннім фрэймворкам Bottle[6] (англ.: bottle — бутэлька).
Калі ў 2004 годзе Ронахер і Георг Брандл стварылі на Python сістэму дошак аб’яваў, у Pocoo з’явіліся праекты Werkzeug і Jinja[9].
У красавіку 2016 года каманда Pocoo была распушчана, а распрацоўка Flask і спадарожных бібліятэк перайшла да зноў утворанага праекта Pallets[10][11]. З 2018 года даныя і аб’екты, звязаныя з Flask, могуць быць адлюстраваны з дапамогай Bootstrap[12].
Flask стаў папулярным сярод энтузіястаў Python. Па стане на кастрычнік 2020 гады ён займае другое месца па колькасці зорак на GitHub сярод фрэймворкаў для вэб-распрацоўкі на Python, толькі трохі саступаючы Django[13], і быў прызнаны самым папулярным вэб-фрэймворкам у апытанні Python Developers Survey 2018, 2019, 2020 і 2021[14][15][16][17].
Кампаненты
[правіць | правіць зыходнік]Мікрафрэймворк Flask з’яўляецца часткай праекта Pallets (раней Pocoo) і заснаваны на некалькіх іншых праектах, усе яны працуюць пад ліцэнзіяй BSD.
Werkzeug
[правіць | правіць зыходнік]Werkzeug (ад ням.: werkzeug — «інструмент») — гэта бібліятэка утыліт для Python, прызначаная для працы з праграмамі Web Server Gateway Interface (WSGI). Werkzeug дазваляе ствараць аб’екты для запытаў, адказаў і службовых функцый. Яна можа быць выкарыстана ў якасці асновы для стварэння ўласнай праграмнай структуры і падтрымлівае версіі Python 2.7, 3.5 і пазнейшыя[18][19].
Jinja
[правіць | правіць зыходнік]Jinja — шабланізатар для Python, таксама распрацаваны Ронахерам. Падобна на Django, ён працуе з шаблонамі ў «пясочніцы».
MarkupSafe
[правіць | правіць зыходнік]MarkupSafe — гэта бібліятэка апрацоўкі радкоў для Python. Аднайменны тып MarkupSafe пашырае радковы тып Python і пазначае яго змесціва як «бяспечнае». Камбінаванне MarkupSafe са звычайнымі радкамі аўтаматычна экрануе немаркіраваныя радкі, пазбягаючы пры гэтым падвойнага экранавання ўжо пазначаных радкоў.
ItsDangerous
[правіць | правіць зыходнік]ItsDangerous — гэта бібліятэка бяспечнай серыялізацыі даных для Python. Яна выкарыстоўваецца для захоўвання сесіі праграмы Flask у файлах cookie, не дазваляючы карыстальнікам умешвацца ў змесціва сесіі.
Асаблівасці
[правіць | правіць зыходнік]- Сервер распрацоўкі і адладчык
- Убудаваная падтрымка модульнага тэсціравання
- Адпраўка запытаў RESTful
- Выкарыстоўвае шабланізатар Jinja
- Падтрымка бяспечных файлаў cookie (сеансы на баку кліента)
- 100 % сумяшчальнасць з WSGI 1.0
- На аснове Unicode
- Поўная дакументацыя
- Сумяшчальнасць з 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()
Гл. таксама
[правіць | правіць зыходнік]Зноскі
- ↑ Flask Foreword(недаступная спасылка). Архівавана з першакрыніцы 17 лістапада 2017.
- ↑ Flask Extensions(недаступная спасылка). Архівавана з першакрыніцы 17 мая 2018.
- ↑ What challenges has Pinterest encountered with Flask?
- ↑ Rachel Sanders: Developing Flask Extensions — PyCon 2014
- ↑ Pocoo Team . Архівавана з першакрыніцы 15 сакавіка 2018.
- ↑ а б Ronacher. Opening the Flask . Архівавана з першакрыніцы 17 снежня 2016. Праверана 30 верасня 2011.
- ↑ Ronacher. April 1st Post Mortem . Armin Ronacher's Thoughts and Writings (3 красавіка 2010). Архівавана з першакрыніцы 14 мая 2018. Праверана 25 ліпеня 2015.
- ↑ Denied: the next generation python micro-web-framework (April Fools page)(недаступная спасылка). Архівавана з першакрыніцы 4 верасня 2011. Праверана 30 верасня 2011.
- ↑ History(недаступная спасылка). Pocoo Team. Архівавана з першакрыніцы 19 лістапада 2017. Праверана 25 сакавіка 2015.
- ↑ Ronacher. Hello Pallets Users . The Pallets Projects (1 красавіка 2016). Праверана 8 мая 2021.
- ↑ Pocoo . www.pocoo.org. Праверана 8 мая 2021.
- ↑ Bootstrap-Flask . HelloFlask. Праверана 6 лістапада 2022.
- ↑ Python libraries by GitHub stars . Github. Праверана 27 студзеня 2020.
- ↑ Python Developers Survey 2018 . www.jetbrains.com (1 лістапада 2018).
- ↑ Python Developers Survey 2019 . www.jetbrains.com (24 кастрычніка 2019).
- ↑ Python Developers Survey 2020 . www.jetbrains.com (24 кастрычніка 2020).
- ↑ Python Developers Survey 2021 . www.jetbrains.com (24 кастрычніка 2021).
- ↑ Ronacher. Werkzeug The Python WSGI Utility Library(недаступная спасылка). palletsprojects.com. Архівавана з першакрыніцы 1 чэрвеня 2021. Праверана 27 May 2018.
- ↑ Ronacher. Installation, Python Version(недаступная спасылка). palletsprojects.com. Архівавана з першакрыніцы 11 мая 2021. Праверана 20 April 2020.