Flask

מתוך ויקיפדיה, האנציקלופדיה החופשית
Flask
Flask logo.svg
מפתח Armin Ronacher עריכת הנתון בוויקינתונים
גרסה אחרונה 2.1.2 (28 באפריל 2022) עריכת הנתון בוויקינתונים
מערכת הפעלה חוצה-פלטפורמות עריכת הנתון בוויקינתונים
נכתבה בשפות פייתון עריכת הנתון בוויקינתונים
סוג רישיון רישיון BSD החדש עריכת הנתון בוויקינתונים
קוד מקור https://github.com/pallets/flask עריכת הנתון בוויקינתונים
flask.palletsprojects.com
לעריכה בוויקינתונים שמשמש מקור לחלק מהמידע בתבנית OOjs UI icon info big.svg

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

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

היסטוריה[עריכת קוד מקור | עריכה]

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

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

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

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

רכיבים[עריכת קוד מקור | עריכה]

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

Werkzeug[עריכת קוד מקור | עריכה]

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

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)

הערות שוליים[עריכת קוד מקור | עריכה]

  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}}: (עזרה)