**Flask** היא ספרייה ליישומי אינטרנט שנכתבה ב-Python. היא מסווגת כ "microframework" מכיוון שהיא אינה דורשת כלים או ספריות כתלוּת. אין לה שכבת הפשטה של מסד נתונים, אימות טפסים או כל רכיב אחר שבו ספריות צד שלישי קיימות מספקות פונקציות נפוצות. עם זאת, Flask תומך בהרחבות שיכולות להוסיף תכונות אפליקציה כאילו הן יושמו ב-Flask עצמה. קיימות הרחבות עבור מיפוי יחסי אובייקט, אימות טפסים, טיפול בהעלאה, טכנולוגיות שונות של אימות פתוח וכמה כלים נפוצים הקשורים למסגרת.

יישומים המשתמשים במסגרת Flask כוללים את Pinterest ו- LinkedIn.

היסטוריה
--------

Flask נוצר על ידי ארמין רונאצ'ר מ-Pocoo, קבוצה בינלאומית של חובבי פייתון שהוקמה ב-2004. לדברי רונאצ'ר, הרעיון היה במקור בדיחת אחד באפריל שהייתה פופולרית מספיק כדי להפוך לאפליקציה רצינית. השם הוא משחק על ספרייה קודמת בשם "Bottle".

כאשר רונצ'ר וגיאורג ברנדל יצרו מערכת לוח מודעות שנכתבה ב-Python ב-2004, פותחו פרויקטי Pocoo Werkzeug ו- Jinja.

באפריל 2016, צוות Pocoo פורק והפיתוח של Flask וספריות קשורות הועבר לפרויקט החדש של Pallets.

Flask הפך פופולרי בקרב חובבי Python. באוקטובר 2020, הייתה במקום השני ב- GitHub מבחינת כוכבים, מבין ספריות פיתוח האינטרנט של Python, רק מעט אחרי Django, ונבחרה לספריית האינטרנט הפופולרית ביותר בסקר מפתחי Python 2018.

רכיבים
------

ה-Microframework Flask הוא חלק מ- *Pallets Projects* (לשעבר *Pocoo*), ומבוסס על כמה אחרים.

### Werkzeug

Werkzeug (בגרמנית "כלי") היא ספריית שירות לשפת התכנות Python, במילים אחרות ערכת כלים עבור יישומי Web Server Gateway Interface (WSGI), והיא מורשית תחת רישיון BSD .ספריית Werkzeug יכולה לממש אובייקטי תוכנה עבור בקשה, תגובה ופונקציות שירות. ניתן להשתמש בה לבניית שלד תוכנה מותאם אישית על גביו ותומך ב-Python 2.7 ו-3.5 ואילך.

### Jinja

Jinja, גם מאת רונאצ'ר, הוא מנוע תבנית עבור שפת התכנות Python והוא מורשה תחת רישיון BSD. בדומה למסגרת האינטרנט של Django, היא מטפלת בתבניות בארגז חול.

### MarkupSafe

MarkupSafe היא ספריית טיפול במחרוזות עבור Python, מורשית תחת רישיון BSD. המחלקה MarkupSafe מרחיב את סוג מחרוזת Python ומסמן את תוכנו כ"בטוח"; שילוב של MarkupSafe עם מחרוזות רגילות בורח אוטומטית מהמחרוזות הלא מסומנות, תוך הימנעות מבריחה כפולה של מחרוזות שכבר מסומנות.

### ItsDangerous

ItsDangerous היא ספריית סריאליזציה של נתונים בטוחה עבור Python, תחת רישיון BSD. היא משמשת לאחסון ה-Session של אפליקציית Flask ב-Cookie מבלי לאפשר למשתמשים להתעסק בתוכן ההפעלה.

מאפיינים
--------

* שרת פיתוח וניפוי באגים
* תמיכה משולבת לבדיקות יחידות
* שליחת בקשה RESTful
* משתמש בתבנית Jinja
* תמיכה בעוגיות מאובטחות (הפעלות בצד לקוח)
* תואם 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(debug=False)

```

קישורים חיצוניים
----------------

ויקישיתוף מדיה וקבצים בנושא **Flask** בוויקישיתוף

הערות שוליים
------------

1. ↑  "Flask Foreword". אורכב מ-המקור ב-2017-11-17.
2. ↑  "Flask Extensions". אורכב מ-המקור ב-2018-05-17.
3. ↑  What challenges has Pinterest encountered with Flask?
4. ↑  Rachel Sanders: Developing Flask Extensions - PyCon 2014
5. ↑  "Pocoo Team". אורכב מ-המקור ב-2018-03-15.
6. 1 2  Ronacher, Armin. "Opening the Flask" (PDF). אורכב מ-המקור (PDF) ב-2016-12-17. נבדק ב-2011-09-30.
7. ↑  Ronacher, Armin (3 באפריל 2010). "April 1st Post Mortem". *Armin Ronacher's Thoughts and Writings*. אורכב מ-המקור ב-2018-05-14. נבדק ב-2015-07-25. `{{cite web}}`:  (עזרה)
8. ↑  "Denied: the next generation python micro-web-framework (April Fools page)". אורכב מ-המקור ב-2011-09-04. נבדק ב-2011-09-30.
9. ↑  "History". Pocoo Team. אורכב מ-המקור ב-2017-11-19. נבדק ב-2015-03-25.
10. ↑  Ronacher, Armin (2016-04-01). "Hello Pallets Users". *The Pallets Projects*. נבדק ב-2021-05-08.
11. ↑  "Pocoo". *www.pocoo.org*. נבדק ב-2021-05-08.
12. ↑  "Python libraries by GitHub stars". *Github*. נבדק ב-2020-01-27.
13. ↑  "Python Developers Survey 2018". www.jetbrains.com. 2018-11-01.
14. ↑  Ronacher, Armin. "Werkzeug The Python WSGI Utility Library". *palletsprojects.com*. נבדק ב-27 במאי 2018. `{{cite web}}`:  (עזרה)
15. ↑  Ronacher, Armin. "Installation, Python Version". *palletsprojects.com*. נבדק ב-20 באפריל 2020. `{{cite web}}`:  (עזרה)