Flask誕生於2010年,是Armin ronacher(人名)用 Python 語言基於 Werkzeug 工具箱編寫的輕量級Web開發框架。
Flask 本身相當於一個內核,其他幾乎所有的功能都要用到擴展(郵件擴展Flask-Mail,用戶認證Flask-Login,數據庫Flask-SQLAlchemy),都需要用第三方的擴展來實現。比如可以用 Flask 擴展加入ORM、窗體驗證工具,文件上傳、身份驗證等。Flask 沒有默認使用的數據庫,你可以選擇 MySQL,也可以用 NoSQL。
其 WSGI 工具箱采用 Werkzeug(路由模塊),模板引擎則使用 Jinja2。這兩個也是 Flask 框架的核心。
Flask 是python三大web框架之一,比之其他兩大框架django和tornado而言,它更加的輕量化,開發效率更高,是入門web框架的首選。
同類的python框架還有 bottle web.py 等
Flask常用擴展包:
Flask-SQLalchemy:操作數據庫;
Flask-script:插入腳本;
Flask-migrate:管理遷移數據庫;
Flask-Session:Session存儲方式指定;
Flask-WTF:表單;
Flask-Mail:郵件;
Flask-Bable:提供國際化和本地化支持,翻譯;
Flask-Login:認證用戶狀態;
Flask-OpenID:認證;
Flask-RESTful:開發REST API的工具;
Flask-Bootstrap:集成前端Twitter Bootstrap框架;
Flask-Moment:本地化日期和時間;
Flask-Admin:簡單而可擴展的管理接口的框架
Flask有兩大核心:Werkzeug和Jinja2
- Werkzeug實現路由、調試和Web服務器網關接口
- Jinja2實現了模板。
Werkzeug是一個遵循WSGI協議的python函數庫
- 其內部實現了很多Web框架底層的東西,比如request和response對象;
- 與WSGI規范的兼容;支持Unicode;
- 支持基本的會話管理和簽名Cookie;
- 集成URL請求路由等。
Werkzeug庫的 routing 模塊負責實現 URL 解析。不同的 URL 對應不同的視圖函數,routing模塊會對請求信息的URL進行解析,匹配到URL對應的視圖函數,執行該函數以此生成一個響應信息。
routing模塊內部有:
Rule類
用來構造不同的URL模式的對象,路由URL規則
以上內容有所借鑒
留個鏈接 以作備用
https://dormousehole.readthedocs.io/en/latest/quickstart.html
