Перайсці да зместу

Flask

З Вікіпедыі, свабоднай энцыклапедыі
Flask
Выява лагатыпа
Тып Вэб-фрэймворк
Распрацоўшчык Армін Ронахер
Напісана на Python
Аперацыйная сістэма кросплатформавасць[d]
Мовы інтэрфейсу
Першы выпуск 1 красавіка 2010 (16 гадоў таму) (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 — «інструмент») — гэта бібліятэка утыліт для Python, прызначаная для працы з праграмамі Web Server Gateway Interface (WSGI). Werkzeug дазваляе ствараць аб’екты для запытаў, адказаў і службовых функцый. Яна можа быць выкарыстана ў якасці асновы для стварэння ўласнай праграмнай структуры і падтрымлівае версіі Python 2.7, 3.5 і пазнейшыя[18][19].

Jinja — шабланізатар для Python, таксама распрацаваны Ронахерам. Падобна на Django, ён працуе з шаблонамі ў «пясочніцы».

MarkupSafe — гэта бібліятэка апрацоўкі радкоў для Python. Аднайменны тып MarkupSafe пашырае радковы тып Python і пазначае яго змесціва як «бяспечнае». Камбінаванне MarkupSafe са звычайнымі радкамі аўтаматычна экрануе немаркіраваныя радкі, пазбягаючы пры гэтым падвойнага экранавання ўжо пазначаных радкоў.

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. 1 2 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 (11 лістапада 2019).
  16. ↑ Python Developers Survey 2020. www.jetbrains.com (11 лістапада 2020).
  17. ↑ Python Developers Survey 2021. www.jetbrains.com (11 лістапада 2021).
  18. ↑ Ronacher. Werkzeug The Python WSGI Utility Library(недаступная спасылка). palletsprojects.com. Архівавана з першакрыніцы 1 чэрвеня 2021. Праверана 27 May 2018.
  19. ↑ Ronacher. Installation, Python Version(недаступная спасылка). palletsprojects.com. Архівавана з першакрыніцы 11 мая 2021. Праверана 20 April 2020.