Flask
開發者 | Armin Ronacher |
---|---|
首次發布 | 2010年4月1日 |
當前版本 |
|
源代碼庫 | |
編程語言 | Python |
操作系統 | 跨平台 |
類型 | Web應用框架 |
許可協議 | BSD |
網站 | flask |
Flask是一個使用Python編寫的輕量級Web應用框架。基於Werkzeug WSGI工具箱和Jinja2模板引擎。Flask使用BSD授權。
Flask被稱為「微框架」,因為它使用簡單的核心,用擴展增加其他功能。Flask沒有預設使用的資料庫、表單驗證工具。然而,Flask保留了擴增的彈性,可以用Flask-extension[2]加入這些功能:ORM、表單驗證工具、檔案上傳、各種開放式身份驗證技術。
採用Flask的知名網站包括領英、Pinterest等。[3][4]
歷史
2004年,一群來自世界各地的Python熱衷者組成了Pocoo。[5]Flask的作者是來自Pocoo的Armin Ronacher。本來只是作者的一個愚人節玩笑,不過後來大受歡迎,進而成為一個正式的專案。[6][7]
當Ronacher和Georg Brandl在2004年開發一個用Python編寫的布告板系統時,開發了Werkzeug和Jinja兩個項目。[8]
2016 年 4 月,Pocoo 團隊解散,Flask 及相關庫的開發移交給新成立的 Pallets 項目。[9][10]
Flask在Python愛好者及開發者中很受歡迎。在2018年的一項面向Python開發者的調查中被評為最受歡迎的Web框架。[11]截至2020年10月,它在GitHub上的Python Web開發框架中排名第二,僅略低於Django。[12]
構件
微框架Flask基於了Pocoo計劃的Werkzeug和Jinja2。
- Werkzeug
Werkzeug是給Python編程語言的實用工具庫,是用於Web服務器網關接口(WSGI)應用的工具箱,並在BSD許可證下發行。Werkzeug可以為請求、響應和實用功能實現軟件對象。它可被用於在其上建造定製的軟件框架,並支持Python 2.7和3.5及以後版本[13][14]。
- Jinja
Jinja也是Ronacher創作,是給Python編程語言的模板引擎,並在BSD許可證下發行。類似於Django web框架,它在沙盒中處理模板。
特色
- 內建開發用伺服器和調試器
- 整合的單元測試支持
- RESTful請求分派
- 使用Jinja2模板引擎
- 支援安全cookie(客戶端會話)
- 100%的WSGI1.0相容
- 基於Unicode
- 詳細的文件、教學
- Google App Engine相容
- 可用Extensions增加其他功能
範例
以下的程式為印出Hello World的網頁程式:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run()
參見
參考
- ^ Release 3.1.0. 2024年11月13日 [2024年11月21日].
- ^ Flask-extension. [2012-02-09]. (原始內容存檔於2018-05-17).
- ^ What challenges has Pinterest encountered with Flask?. [2022-08-21]. (原始內容存檔於2023-07-22).
- ^ Rachel Sanders: Developing Flask Extensions - PyCon 2014. [2022-08-21]. (原始內容存檔於2017-07-31).
- ^ Pocoo Team. [2017-06-15]. (原始內容存檔於2015-11-10).
- ^ Ronacher, Armin. Opening the Flask (PDF). [September 30, 2011]. (原始內容存檔 (PDF)於2012-03-30).
- ^ Denied: the next generation python micro-web-framework (April Fools page). [September 30, 2011]. (原始內容存檔於2011年9月4日).
- ^ History. Pocoo Team. [2015-03-25]. (原始內容存檔於2017-11-19).
- ^ Ronacher, Armin. Hello Pallets Users. The Pallets Projects. 2016-04-01 [2021-05-08]. (原始內容存檔於2022-07-04).
- ^ Pocoo. www.pocoo.org. [2021-05-08]. (原始內容存檔於2022-08-03).
- ^ Python Developers Survey 2018. www.jetbrains.com. 2018-11-01 [2022-08-21]. (原始內容存檔於2022-09-03).
- ^ Python libraries by GitHub stars. Github. [2020-01-27]. (原始內容存檔於2022-01-07).
- ^ Ronacher, Armin. Werkzeug The Python WSGI Utility Library. palletsprojects.com. [27 May 2018]. (原始內容存檔於2021-06-01).
- ^ Ronacher, Armin. Installation, Python Version. palletsprojects.com. [20 April 2020]. (原始內容存檔於2021-05-11).