Flask

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

יישומים המשתמשים במסגרת Flask כוללים את Pinterest ו- LinkedIn.<ref>[http://www.quora.com/What-challenges-has-Pinterest-encountered-with-Flask/answer/Steve-Cohen?srid=hXZd&share=1 What challenges has Pinterest encountered with Flask?]</ref><ref>[https://www.youtube.com/watch?v=OXN3wuHUBP0#t=46 Rachel Sanders: Developing Flask Extensions - PyCon 2014]</ref>

== היסטוריה ==
Flask נוצר על ידי ארמין רונאצ'ר מ-Pocoo, קבוצה בינלאומית של חובבי פייתון שהוקמה ב-2004.<ref></ref> לדברי רונאצ'ר, הרעיון היה במקור בדיחת אחד באפריל שהייתה פופולרית מספיק כדי להפוך לאפליקציה רצינית.<ref name="openingflask"></ref><ref></ref><ref name="aprilfoolspage"></ref> השם הוא משחק על ספרייה קודמת בשם "Bottle".<ref name="openingflask" />

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

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

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

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

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

=== 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" בעת ביקור:<syntaxhighlight lang="python">
from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello() -> str:
 return "Hello World"

if __name__ == "__main__":
 app.run(debug=False)
</syntaxhighlight>

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

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

קטגוריה:ערכים שבהם תבנית אתר רשמי אינה מתאימה להוספה אוטומטית
קטגוריה:פיתוח יישומי ווב
קטגוריה:תוכנה חופשית
קטגוריה:תוכנות הכתובות בפייתון