Flask

Flask (Фласк,  — фляга) — гэта мікра вэб-фрэймворк, напісаны на мове Python. Ён класіфікуецца як мікрафрэймворк, пасколькі не патрабуе выкарыстання спецыяльных інструментаў альбо бібліятэк. У ім няма пласта абстракцыі баз даных, валідацыі формаў і іншых кампанентаў, дзе агульныя функцыі падаюць ужо існыя бібліятэкі іншых распрацоўнікаў. Аднак Flask падтрымлівае пашырэнні, якія дазваляюць дадаваць функцыі вэб-праграмы так, як калі б яны былі рэалізаваны ў самым Flask. Існуюць пашырэнні для аб’ектна-рэляцыйных адлюстраванняў (), праверкі формаў, апрацоўкі загрузак, розных адкрытых тэхналогій аўтэнтыфікацыі і шэрагу агульных інструментаў, звязаных з фрэймворкам.

Сярод вэб-сайтаў, якія выкарыстоўваюць Flask — Pinterest і LinkedInWhat challenges has Pinterest encountered with Flask?Rachel Sanders: Developing Flask Extensions — PyCon 2014.

 Гісторыя 
Flask быў створаны Армінам Ронахерам з Pocoo, міжнароднай групы энтузіястаў Python утворанай у 2004 годзе. Па словах Ронахера, першапачаткова ідэя была першакрасавіцкім жартам, якая аказалася дастаткова папулярнай, каб ператварыцца ў сур’ёзную праграму. Назва з’яўляецца гульнёй слоў з больш раннім фрэймворкам Bottle ( — бутэлька).

Калі ў 2004 годзе Ронахер і Георг Брандл стварылі на Python сістэму дошак аб’яваў, у Pocoo з’явіліся праекты Werkzeug і Jinja.

У красавіку 2016 года каманда Pocoo была распушчана, а распрацоўка Flask і спадарожных бібліятэк перайшла да зноў утворанага праекта Pallets. З 2018 года даныя і аб’екты, звязаныя з Flask, могуць быць адлюстраваны з дапамогай Bootstrap.

Flask стаў папулярным сярод энтузіястаў Python. Па стане на кастрычнік 2020 гады ён займае другое месца па колькасці зорак на GitHub сярод фрэймворкаў для вэб-распрацоўкі на Python, толькі трохі саступаючы Django, і быў прызнаны самым папулярным вэб-фрэймворкам у апытанні Python Developers Survey 2018, 2019, 2020 і 2021.

 Кампаненты 
Мікрафрэймворк Flask з’яўляецца часткай праекта Pallets (раней Pocoo) і заснаваны на некалькіх іншых праектах, усе яны працуюць пад ліцэнзіяй BSD.

 Werkzeug 
Werkzeug (ад  — «інструмент») — гэта бібліятэка утыліт для Python, прызначаная для працы з праграмамі Web Server Gateway Interface (WSGI). Werkzeug дазваляе ствараць аб’екты для запытаў, адказаў і службовых функцый. Яна можа быць выкарыстана ў якасці асновы для стварэння ўласнай праграмнай структуры і падтрымлівае версіі Python 2.7, 3.5 і пазнейшыя.

 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()

 Гл. таксама 

 Django
 FastAPI

Катэгорыя:Свабоднае праграмнае забеспячэнне, напісанае на Python
Катэгорыя:Фрэймворкі на Python