Flask

З Вікіпедыі, свабоднай энцыклапедыі
Flask
Выява лагатыпа
Тып Вэб-фрэймворк
Распрацоўшчык Армін Ронахер
Напісана на Python
Аперацыйная сістэма кросплатформавае праграмнае забеспячэнне
Першы выпуск 1 красавіка 2010 (14 гадоў таму) (2010-04-01)
Апошняя версія 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()

Гл. таксама[правіць | правіць зыходнік]

Зноскі

  1. Flask Foreword. Архівавана з першакрыніцы 17 лістапада 2017.
  2. Flask Extensions. Архівавана з першакрыніцы 17 мая 2018.
  3. What challenges has Pinterest encountered with Flask?
  4. Rachel Sanders: Developing Flask Extensions — PyCon 2014
  5. Pocoo Team. Архівавана з першакрыніцы 15 сакавіка 2018.
  6. а б Ronacher. Opening the Flask. Архівавана з першакрыніцы 17 снежня 2016. Праверана 30 верасня 2011.
  7. Ronacher. April 1st Post Mortem. Armin Ronacher's Thoughts and Writings (3 красавіка 2010). Архівавана з першакрыніцы 14 мая 2018. Праверана 25 ліпеня 2015.
  8. Denied: the next generation python micro-web-framework (April Fools page). Архівавана з першакрыніцы 4 верасня 2011. Праверана 30 верасня 2011.
  9. History. Pocoo Team. Архівавана з першакрыніцы 19 лістапада 2017. Праверана 25 сакавіка 2015.
  10. Ronacher. Hello Pallets Users. The Pallets Projects (1 красавіка 2016). Праверана 8 мая 2021.
  11. Pocoo. www.pocoo.org. Праверана 8 мая 2021.
  12. Bootstrap-Flask. HelloFlask. Праверана 6 лістапада 2022.
  13. Python libraries by GitHub stars. Github. Праверана 27 студзеня 2020.
  14. Python Developers Survey 2018. www.jetbrains.com (1 лістапада 2018).
  15. Python Developers Survey 2019. www.jetbrains.com (26 красавіка 2019).
  16. Python Developers Survey 2020. www.jetbrains.com (26 красавіка 2020).
  17. Python Developers Survey 2021. www.jetbrains.com (26 красавіка 2021).
  18. Ronacher. Werkzeug The Python WSGI Utility Library. palletsprojects.com. Праверана 27 May 2018.
  19. Ronacher. Installation, Python Version(недаступная спасылка). palletsprojects.com. Архівавана з першакрыніцы 11 мая 2021. Праверана 20 April 2020.