Sanic十:Sanic蓝图

 

在进行开发的时候,可能会有很多个模块,比如用户模块、商品模块,这些个模块互相之间不依赖,各自有各自的一些配置、属性、静态资源,这种情况就可以使用蓝图,即每一个模块都可以用蓝图声明路由app,然后把每个蓝图视为主app的子app来注册,这样就能实现分模块单独管理,模块之间的资源和配置互不影响

 

一、声明蓝图需使用sanic.Blueprint,使用示例

使用蓝图

Sanic十:Sanic蓝图

引入并注蓝图并把蓝图注册到主app上

Sanic十:Sanic蓝图

Sanic十:Sanic蓝图

 

二、蓝图支持指定的参数

由源码可见,Blueprint和Sanic一样,都是继承的BaseSanic,所以使用方式其实是一样的,但又有各自支持的参数

Sanic十:Sanic蓝图

Sanic十:Sanic蓝图

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

Sanic十:Sanic蓝图

Sanic十:Sanic蓝图

 

三、蓝图嵌套,Blueprint.group方法

当使用蓝图对工程进行分类管理过后,可能还需要对分类过后的每一个类进行细分,这个时候就可使用Blueprint.group方法来注册到一个主蓝图上

Sanic十:Sanic蓝图

用户管理,登录注册模块

Sanic十:Sanic蓝图

用户管理,用户信息模块

Sanic十:Sanic蓝图

把两个子路由注册到同一个主蓝图中

Sanic十:Sanic蓝图

把主蓝图注册到app上

Sanic十:Sanic蓝图

 

官方案例:

Sanic十:Sanic蓝图

Sanic十:Sanic蓝图

 

Sanic十:Sanic蓝图

上一篇:macos使用中常用快捷键


下一篇:k8s之DaemonSet