zoukankan      html  css  js  c++  java
  • sanic官方文档解析之蓝图

    1,蓝图(Blueprints)

     蓝图可用于子路由的应用,代替增加路由的存在,蓝图的定义和增加路由的方法相似,灵活的在应用中注册,并且可插拔的方式.

    尤其是在大型应用中使用蓝图的时候在你逻辑打断的地方或者是响应的地方

    • 1.1,第一个蓝图

     

    接下来展示一个简单的在你的应用程序中已经注册了的处理管理员的视图函数如上图所示.

    支持你保存到my_blueprint.py文件中,那将会是应用程序的入口.

    • 1.2,注册蓝图

     

    蓝图必须注册到应用的程序中(和flask一毛一样)

    这样将会增加在应用程序中的蓝图,并且通过蓝图注册任何的定义路由,比如说在app.router中注册的路由如上图所示.

    • 1.3蓝图组和嵌套

    蓝图也可以被注册成列表或者元组的一部分,注册递归循环的穿过子序列,并且通过蓝图注册,蓝图组的方法被提供给进程,允许结构字典,模仿 前面的结束,考虑上边的(人为的退出)例子:

    • 初始化应用程序的的层次如下所示:
    from sanic import Blueprint
    
    static = Blueprint("content_authors", url_prefix="/authors")
    
    static1 = Blueprint("content_static", url_prefix="/static")
    
    from sanic import Blueprint
    from .static import static
    from .authors import authors
    content = Blueprint.group(static, authors, url_prefix="/content")  # 如果没有特殊的要求,蓝图可以合并和写
    
    from .content import content
    from .info import info
    
    api = Blueprint.group(content, info, url_prefix="/api")
    
    
    from sanic import Sanic
    from .api import api
    
    app = Sanic(__name__)
    
    app.blueprint(api)  # 直接可以用实例化Sanic类中的blueprint方法
    • 1.4,使用蓝图

    蓝图几乎都有座位一个应用存在的功能

    • 1.5,Websocket路由

    Websocket处理程序可以使用@bp.websocket装饰器或者bp.add_websocket_route方法被注册在蓝图里

    • 1.6中间件

    使用蓝图允许注册到全局的中间件,实例如上图所示.

    • 1.7异常

    异常能够专门被应用于全局的蓝图

    • 1.8,静态文件

    静态文件可以在蓝图前缀下全局提供服务

    • 1.9启动和暂停蓝图

    在服务器可以运行蓝图函数在启动和暂停服务的时候,如果是多进程模式运行,将会触发这些程序运行

    from sanic import Blueprint
    import pymysql
    
    
    # 实例化一个蓝图的对象
    bq = Blueprint("my_blueprint")
    
    
    @bq.listener("before_server_start")
    async def setup_connection(app, loop):
        global database
        database = pymysql.connect(host="127.0.0.1", port=3306)
    
    
    @bq.listener("after_server_stop")
    async def close_connection(app, loop):
        await database.close() 

    参数说明:

    • before_server_start:在服务启动前执行连接数据库
    • after_server_start:值服务器启动后执行接通连接
    • before_server_stop:在服务器挺喜欢停止前执行接通连接
    • after_server_stop:在服务器停止后并且所有的请求已经完成执行
    • 1.10用url_for建立url

    如果你希望为蓝图 设计一个路由,切记,采用以上的格式

  • 相关阅读:
    在ant编译java文件时产生debug信息
    Ant里面神奇的fork
    在ant中将依赖jar包一并打包的方法
    Java通过class文件得到所在jar包
    Bat脚本:通过端口号查找进程号
    使用emma时遇到的一些问题
    python之路-day18-反射
    python之路-day17-类与类之间的关系
    python之路-day16-类的成员
    python之路-day15-初识面向对象
  • 原文地址:https://www.cnblogs.com/ljc-0923/p/10391802.html
Copyright © 2011-2022 走看看