flask_3:2020-08-27總結
目錄:
1、web框架—flask
2、flask常用擴充套件包
3、flask相關的基本概念
4、小應用例項
5、Blueprint進行多模組應用的編寫
6、Flask-Admin:簡單而可擴充套件的管理介面的框架
1、web框架—flask:
框架的作用就是:避免重複造輪子。在 Python 中常用的 Web 框架有:flask(輕量級)、django(大專案用)、tornado。
Flask誕生於2010年,是Armin ronacher(人名)用 Python 語言基於 Werkzeug 工具箱編寫的輕量級Web開發框架。
Flask 本身相當於一個核心,其他幾乎所有的功能都要用到擴充套件(郵件擴充套件Flask-Mail,使用者認證Flask-Login,資料庫Flask-SQLAlchemy),都需要用第三方的擴充套件來實現。比如可以用 Flask 擴充套件加入ORM、窗體驗證工具,檔案上傳、身份驗證等。Flask 沒有預設使用的資料庫,你可以選擇 MySQL,也可以用 NoSQL。
Flask的核心有2個:
- Jinja2:模板引擎
- Werkzeug(路由模組):WSGI 工具箱
、
Werkzeug庫的 routing 模組負責實現 URL 解析。不同的 URL 對應不同的檢視函式,routing模組會對請求資訊的URL進行解析,匹配到URL對應的檢視函式,執行該函式以此生成一個響應資訊。
routing模組內部有:
- Rule類
- 用來構造不同的URL模式的物件,路由URL規則
- Map類
- 儲存所有的URL規則和一些配置引數
- BaseConverter的子類
- 負責定義匹配規則
- MapAdapter類
- 負責協調Rule做具體的匹配的工作
2、Flask常用擴充套件包:
- Flask-Admin:簡單而可擴充套件的管理介面的框架(常用)
- 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:本地化日期和時間;
3、flask相關的基本概念:
路由、檢視、檢視函式、除錯模式、變數規則、重定向、URL 構建/url_for()
、HTTP 方法(get/post)、渲染模板(預設為templates資料夾)、靜態檔案(?)、請求物件(request.form,request.args)、檔案上傳(?)、
狀態保持(Cookies、Session)、金鑰+日誌(?)、JSON 格式的 API、錯誤和抓取錯誤
4、小應用例項
from flask import Flask # Flask函式接收一個引數__name__,它會指向程式所在的包 app = Flask(__name__) # 裝飾器的作用是將路由對映到檢視函式 index @app.route('/') def index(): return 'Hello world' # Flask應用程式例項的 run 方法 啟動 WEB 伺服器 if __name__ == '__main__': app.run()
5、Blueprint進行多模組應用的編寫
當應用比較簡單,只有1個模組的時候,我們可以像上面示例那樣,把所有的應用都放到app.py中,例如工作中,各個投放平臺的點選資料接收。但是當開發的模組比較多的時候,就會導致檔案繁雜,不好維護。用藍圖能很好地解決這個問題,在各個模組中生成藍圖,然後統一在app.py中進行註冊,用不同的URL字首進行區分。
具體參考:
(1)Flask使用Blueprint進行多模組應用的編寫:https://cloud.tencent.com/developer/article/1033429
(2)flask裡面的Blueprint:https://www.jianshu.com/p/6706b6e4c417
6、Flask-Admin:簡單而可擴充套件的管理介面的框架
Flask-Admin是一個簡單易用的Flask擴充套件,讓你可以很方便並快速地為Flask應用程式增加管理介面。
具體參考:【譯】Flask-Admin中文入門教程