Sanic十:Sanic藍圖
阿新 • • 發佈:2021-08-08
在進行開發的時候,可能會有很多個模組,比如使用者模組、商品模組,這些個模組互相之間不依賴,各自有各自的一些配置、屬性、靜態資源,這種情況就可以使用藍圖,即每一個模組都可以用藍圖宣告路由app,然後把每個藍圖視為主app的子app來註冊,這樣就能實現分模組單獨管理,模組之間的資源和配置互不影響
一、宣告藍圖需使用sanic.Blueprint,使用示例
使用藍圖
引入並注藍圖並把藍圖註冊到主app上
二、藍圖支援指定的引數
由原始碼可見,Blueprint和Sanic一樣,都是繼承的BaseSanic,所以使用方式其實是一樣的,但又有各自支援的引數
name: str 藍圖名,不重複即可,預設為None
url_prefix: str url字首對此藍圖下所有路由有效,預設為None
host: str sanic伺服器要使用的FQDN的IP地址,預設為None
version: [int, str, float] 藍圖版本號,預設為None
strict_slashes: Optional[bool] = None,
version_prefix: str 版本字首,預設為 /v
三、藍圖巢狀,Blueprint.group方法
當使用藍圖對工程進行分類管理過後,可能還需要對分類過後的每一個類進行細分,這個時候就可使用Blueprint.group方法來註冊到一個主藍圖上
使用者管理,登入註冊模組
使用者管理,使用者資訊模組
把兩個子路由註冊到同一個主藍圖中
把主藍圖註冊到app上
官方案例:
討論群:249728408