Flask

維基百科,自由的百科全書
跳至導覽 跳至搜尋
Flask
File:Flask logo.svg
開發者Armin Ronacher
首次發佈2010年4月1日 (2010-04-01)
目前版本
    Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
    原始碼庫
    • {{URL|example.com|可选的显示文本}}
    Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
    程式語言Python
    引擎
      Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
      作業系統跨平台
      類型Web應用框架
      許可協定BSD
      網站flask.pocoo.org

      Flask是一個使用Python編寫的輕量級Web應用框架。基於Werkzeug WSGI工具箱和Jinja2模板引擎。Flask使用BSD授權。

      Flask被稱為「微框架」,因為它使用簡單的核心,用擴充增加其他功能。Flask沒有預設使用的資料庫、表單驗證工具。然而,Flask保留了擴增的彈性,可以用Flask-extension[1]加入這些功能:ORM、表單驗證工具、檔案上載、各種開放式身份驗證技術。

      採用Flask的知名網站包括領英Pinterest等。[2][3]

      歷史[編輯]

      2004年,一群來自世界各地的Python熱衷者組成了Pocoo。[4]Flask的作者是來自Pocoo的Armin Ronacher。本來只是作者的一個愚人節玩笑,不過後來大受歡迎,進而成為一個正式的專案。[5][6]

      當Ronacher和Georg Brandl在2004年開發一個用Python編寫的佈告板系統時,開發了Werkzeug和Jinja兩個專案。[7]

      2016 年 4 月,Pocoo 團隊解散,Flask 及相關庫的開發移交給新成立的 Pallets 專案。[8][9]

      Flask在Python愛好者及開發者中很受歡迎。在2018年的一項面向Python開發者的調查中被評為最受歡迎的Web框架。[10]截至2020年10月,它在GitHub上的Python Web開發框架中排名第二,僅略低於Django。[11]

      構件[編輯]

      微框架Flask基於了Pocoo計劃的Werkzeug和Jinja2。

      Werkzeug

      Werkzeug是給Python程式語言的實用工具庫,是用於Web伺服器閘道器介面(WSGI)應用的工具箱,並在BSD許可證下發行。Werkzeug可以為請求、響應和實用功能實現軟件對象。它可被用於在其上建造客製化的軟件框架,並支援Python 2.7和3.5及以後版本[12][13]

      Jinja

      Jinja也是Ronacher創作,是給Python程式語言的模板引擎英語Web template system,並在BSD許可證下發行。類似於Django web框架,它在沙盒中處理模板。

      特色[編輯]

      • 內建開發用伺服器和除錯器
      • 整合的單元測試支援
      • RESTful請求分派
      • 使用Jinja2模板引擎
      • 支援安全cookie(客戶端對談)
      • 100%的WSGI1.0相容
      • 基於Unicode
      • 詳細的檔案、教學
      • Google App Engine相容
      • 可用Extensions增加其他功能

      範例[編輯]

      Flask可以在python環境中使用pypi等python包管理工具安裝[13][14],以下的程式為印出Hello World的網頁程式:

      from flask import Flask
      app = Flask(__name__)
      
      @app.route("/")
      def hello():
          return "Hello World!"
      
      if __name__ == "__main__":
          app.run()
      

      執行上述代碼後,使用網頁瀏覽器訪問http://127.0.0.1:5000,即可看到網頁瀏覽器中顯示了「Hello World!」。[15]

      參見[編輯]

      參考[編輯]

      1. ^ Flask-extension. [2012-02-09]. (原始內容存檔於2018-05-17). 
      2. ^ What challenges has Pinterest encountered with Flask?. [2022-08-21]. (原始內容存檔於2023-07-22). 
      3. ^ Rachel Sanders: Developing Flask Extensions - PyCon 2014. [2022-08-21]. (原始內容存檔於2017-07-31). 
      4. ^ Pocoo Team. [2017-06-15]. (原始內容存檔於2015-11-10). 
      5. ^ Ronacher, Armin. Opening the Flask (PDF). [September 30, 2011]. (原始內容存檔 (PDF)於2012-03-30). 
      6. ^ Denied: the next generation python micro-web-framework (April Fools page). [September 30, 2011]. (原始內容存檔於2011年9月4日). 
      7. ^ History. Pocoo Team. [2015-03-25]. (原始內容存檔於2017-11-19). 
      8. ^ Ronacher, Armin. Hello Pallets Users. The Pallets Projects. 2016-04-01 [2021-05-08]. (原始內容存檔於2022-07-04). 
      9. ^ Pocoo. www.pocoo.org. [2021-05-08]. (原始內容存檔於2022-08-03). 
      10. ^ Python Developers Survey 2018. www.jetbrains.com. 2018-11-01 [2022-08-21]. (原始內容存檔於2022-09-03). 
      11. ^ Python libraries by GitHub stars. Github. [2020-01-27]. (原始內容存檔於2022-01-07). 
      12. ^ Ronacher, Armin. Werkzeug The Python WSGI Utility Library. palletsprojects.com. [27 May 2018]. (原始內容存檔於2021-06-01). 
      13. ^ 13.0 13.1 Ronacher, Armin. Installation, Python Version. palletsprojects.com. [20 April 2020]. (原始內容存檔於2021-05-11). 
      14. ^ Installation — Flask Documentation (3.1.x). flask.palletsprojects.com. [2025-10-06]. 
      15. ^ Quickstart — Flask Documentation (3.1.x). flask.palletsprojects.com. [2025-10-06]. 

      外部連結[編輯]

      • Module:Official_website第90行Lua錯誤:attempt to index field 'wikibase' (a nil value)