基本定义3种中间件的方式

使用 @app.middleware 开头来定义

  1. from sanic import Sanic
  2. from sanic import responts
  3. app = Sanic('App_name')
  4. @app.middleware
  5. async def test():
  6. print('进来了')
  7. return responts.json({'code': 200, 'msg': 'ok'})
  8. @app.middleware('requets')
  9. async def test():
  10. print('进来了')
  11. return responts.json({'code': 200, 'msg': 'ok'})
  12. @app.middleware('response')
  13. async def test():
  14. print('进来了')
  15. return responts.json({'code': 200, 'msg': 'ok'})

基于蓝图 定义中间件

使用 蓝图赋值的变量 soft 进行 @soft.middleware('requets')@soft.middleware 定义中间件

  1. from sanic import response, Blueprint
  2. from demo_02.controller.soft import soft_index, soft_up
  3. soft = Blueprint('routes_soft', url_prefix='/soft')
  4. soft.add_route(soft_index, '/')
  5. soft.add_route(soft_up, '/up')
  6. # 方式1
  7. @soft.middleware('request')
  8. async def soft_middleware(request):
  9. print("soft中间件:", request)
  10. # 方式2
  11. @soft.middleware
  12. async def soft_middleware(request):
  13. print("soft中间件:", request)