zoukankan      html  css  js  c++  java
  • Sanic十三:Sanic中间件和监听器

    一:中间件

    中间件是在请求服务器之前或之后执行的功能。它们可以用来在请求到视图函数之前修改请求参数,视图函数响应之后处理响应数据,中间件中只能做数据处理,若中间件修饰的函数中有返回操作,则会直接中断返回给用户
    中间件有两种类型:请求和响应。两者都使用 @app.middleware来修饰,参数只支持字符串: 'request' 或 'response'

    1、request,request修饰的函数,只需要接收request参数即可,当有多个request中间件时,按 先加载 -> 后加载 顺序执行

    当request修饰的函数,有做返回操作时,将不会执行视图函数,直接走响应流程

    2、response,response修饰的函数,需同时接收request和response,当有多个response中间件时,按 先加载 -> 先加载 顺序执行

    当response修饰的函数,有做返回操作时,将不会继续往下执行,会中断流程,不会返回此步骤设置的返回值返回此步骤return代码之前产生的数据

    二、监听器

    1、监听器的类型:

    服务启动之前:before_server_start
    服务启动之后:after_server_start
    服务停止之前:before_server_stop
    服务停止之后:after_server_stop

    2、使用监听器有两种方式

    方式一:@app.listener(事件名)修饰对应的处理函数,此时函数需接受两个参数,一个是app,一个是loop

    当同一个事件被定义多次时,按加载顺序执行

    方式二:Sanic.register_listener(处理函数, 事件名),此时事件函数仍然需接受两个参数,一个是app,一个是loop

    同样,当同一个事件被定义多次时,按加载顺序执行

    须注意的是,使用start类的监听器执行的任务肯定是下一步依赖于上一步的,比如第一个监听器是链接数据库,第二个监听器是对数据库相关的某些操作,而使用stop类的监听器的时候,就应该先接触与数据库的依赖,再关闭数据库链接

    讨论群:249728408
  • 相关阅读:
    第三章 对话拖延--摆脱拖延
    第二章 审问拖延:被架在审判席上的失败者恐惧症
    番茄学习法笔记以及初始尝试
    第一章 质疑拖延:是可恶的坏习惯还是应得的报应
    学习编程珠玑笔记记录-----第二章 算法
    李文业工作一年总结
    永远要努力向前
    怎样才能在工作中进步的更快
    windows下php扩展安装
    JS学习笔记
  • 原文地址:https://www.cnblogs.com/zhongyehai/p/15115283.html
Copyright © 2011-2022 走看看