Flask是一個使用 Python 編寫的輕量級 Web 應用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎則使用 Jinja2 。Flask使用 BSD 授權。
Flask也被稱為 “microframework” ,因為它使用簡單的核心,用 extension 增加其他功能。
Flask沒有默認使用的數據庫、窗體驗證工具。
Flask 是什么?
Flask是一個輕量級的可定制框架,使用Python語言編寫,較其他同類型框架更為靈活、輕便、安全且容易上手。它可以很好地結合MVC模式進行開發,開發人員分工合作,小型團隊在短時間內就可以完成功能豐富的中小型網站或Web服務的實現。另外,Flask還有很強的定制性,用戶可以根據自己的需求來添加相應的功能,在保持核心功能簡單的同時實現功能的豐富與擴展,其強大的插件庫可以讓用戶實現個性化的網站定制,開發出功能強大的網站。
Flask是目前十分流行的web框架,采用Python編程語言來實現相關功能。它被稱為微框架(microframework),“微”并不是意味著把整個Web應用放入到一個Python文件,微框架中的“微”是指Flask旨在保持代碼簡潔且易于擴展,Flask框架的主要特征是核心構成比較簡單,但具有很強的擴展性和兼容性,程序員可以使用Python語言快速實現一個網站或Web服務。一般情況下,它不會指定數據庫和模板引擎等對象,用戶可以根據需要自己選擇各種數據庫。Flask自身不會提供表單驗證功能,在項目實施過程中可以自由配置,從而為應用程序開發提供數據庫抽象層基礎組件,支持進行表單數據合法性驗證、文件上傳處理、用戶身份認證和數據庫集成等功能。
Flask主要包括Werkzeug和Jinja2兩個核心函數庫,它們分別負責業務處理和安全方面的功能,這些基礎函數為web項目開發過程提供了豐富的基礎組件。Werkzeug庫十分強大,功能比較完善,支持URL路由請求集成,一次可以響應多個用戶的訪問請求;支持Cookie和會話管理,通過身份緩存數據建立長久連接關系,并提高用戶訪問速度;支持交互式Javascript調試,提高用戶體驗;可以處理HTTP基本事務,快速響應客戶端推送過來的訪問請求。
Jinja2庫支持自動HTML轉移功能,能夠很好控制外部黑客的腳本攻擊。系統運行速度很快,頁面加載過程會將源碼進行編譯形成Python字節碼,從而實現模板的高效運行;模板繼承機制可以對模板內容進行修改和維護,為不同需求的用戶提供相應的模板。
目前Python的web框架有很多。除了Flask,還有django、Web2py等等。其中Django是目前Python的框架中使用度最高的。但是Django如同java的EJB(EnterpriseJavaBeansJavaEE服務器端組件模型)多被用于大型網站的開發,但對于大多數的小型網站的開發,使用SSH(Struts+Spring+Hibernat的一個JavaEE集成框架)就可以滿足,和其他的輕量級框架相比較,Flask框架有很好的擴展性,這是其他Web框架不可替代的。