1. 程式人生 > 實用技巧 >flask_3:2020-08-27總結

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中文入門教程