flask框架總結(二)——企業實踐篇

之前介紹過flask框架的基礎應用,這篇主要介紹下項目中flask框架裏的實操應用,如果對您有用,請記得關注,點贊,同時也歡迎大家留言討論。
ps: 爲方便,用的pycharm,windows演示的。

項目結構技巧

先貼出演示項目的目錄
在這裏插入圖片描述

app文件夾主要存放項目中的主要代碼

  1. models文件夾存放數據模型類的文件(數據庫的表模型)
  2. static 存放靜態資源(一般不用了)
  3. templates 常用存放html資源文件
  4. utils 存放一些要用的工具類文件
  5. views 存放視圖類文件(路由)

scheduler 文件夾主要存放一些項目中要用到的定時腳本
worker 文件夾主要存放一些項目中要用到的異步耗時任務
app.py 文件爲項目的啓動文件
config.py 文件爲項目的配置文件
xxxx.sh文件爲封裝的啓動腳本

裝飾器使用技巧

在這裏插入圖片描述
裝飾器在flask項目中常用的有4個地方

  1. 藍圖中的路由使用到這個。如上圖的index.route()
  2. 用戶鑑權用到這個.如上圖的auth_login()
  3. 在使用裝飾器後,爲了保留原函數的屬性,使用functools.wraps(method),如果不加這個的話,index.name 返回的結果是wrapper而不是index.
    裝飾器代碼
  4. 在異步腳本中使用,celery.task標記是一個celery類型任務函數
    在這裏插入圖片描述

日誌服務使用技巧

在這裏插入圖片描述
項目中主要是封裝logger模塊來實現日誌,大致流程就是

  1. 創建一個logger對象,定義logger的等級。
  2. 創建日誌流對象,設置流對象的格式
  3. 在logger對象的執行任務中增加流對象輸出。
    樣式如下圖:
    在這裏插入圖片描述
    正常工作中還會根據日誌的等級把日誌存到文件中,例如把info和debug存到1個文件。error存到一個文件中。
    更完善點的 會接入預警模塊 類似centry模塊實時給開發者發送錯誤提醒。

異步腳本使用技巧

這裏異步腳本 一般我用的是celery模塊實現。
在這裏插入圖片描述
在這裏插入圖片描述
使用規則很簡單。

  1. config.py中配置celery參數。
  2. 異步任務函數用celery.task()裝飾器修飾。
  3. 調用函數的時候 用 函數名.apply_async((),{},countdown=延時時間) 去執行
  4. 提前開啓異步任務腳本 python -m celery --app=worker.celery worker -c 8 --loglevel=info
    如果是在windows上學習,需要
pip install eventlet
python -m celery --app=worker.celery worker -c 8 --loglevel=info -P eventlet

在這裏插入圖片描述
在這裏插入圖片描述

定時器使用技巧

定時器功能的實現我用的是 apscheduler
在這裏插入圖片描述
使用流程主要是

  1. 設置定時器的線程數量,創建定時器對象
  2. 編寫定時任務代碼,添加到定時器對象中
  3. 啓動定時器任務
    當然 爲了看到日誌,需要加上日誌功能,流程和日誌功能一樣。演示中我定時了一個3秒一次的定時任務。輸出如下。
    在這裏插入圖片描述

以上大致說了下項目中的一些功能模塊的使用方法。後面再針對每個模塊詳細再講些下。

附上演示項目代碼
鏈接: 項目代碼github地址.
希望對大家有幫助。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章