1. 程式人生 > 其它 >Sanic十:Sanic藍圖

Sanic十:Sanic藍圖

在進行開發的時候,可能會有很多個模組,比如使用者模組、商品模組,這些個模組互相之間不依賴,各自有各自的一些配置、屬性、靜態資源,這種情況就可以使用藍圖,即每一個模組都可以用藍圖宣告路由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