• Sanic十一:Sanic类视图与合成视图


    一、类视图

    基于类的视图只是实现对请求的响应行为的类。它们提供了一种在同一端点划分不同HTTP请求类型处理的方法。可以为端点分配一个基于类的视图,而不是定义和修饰三个不同的处理程序函数(每个端点支持的请求类型对应一个处理程序函数)。

    基于类的视图需继承 HTTPMethodView . 然后,可以为要支持的每个HTTP请求类型实现类方法。如果接收到没有定义方法的请求,则 405: Method not allowed 将生成响应。

    注册基于类的视图,需使用 app.add_route 方法。第一个参数应该是用方法定义的类 as_view 调用,第二个应该是URL端点

    1、url参数:如果需要任何URL参数,需在方法定义中声明,但是由于此时是几种请求方式注册到同一接口地址的,所以没有接收此参数的请求方法会报错,如,get请求接收了此路径参数,可以正常使用,但是post、put、delete没有接收此参数,当使用这些请求方式时,则会报错,所以当使用类视图且要接收路径参数时,此类视图下的手游请求方法都需要接收此参数

    2、装饰器

    当要使用装饰器时,需使用 decorators 属性来以 列表/元祖 的形式指定,

    如,登录校验

    应用到类视图中使用

    对当前类视图下的所有请求生效

    只使用到需要用到的请求上,此时,还需要把此方法声明为静态方法

    3、使用url_for生成接口地址时,则需传入类名

    二、合成视图

    合成视图可以将处理程序函数移到视图类之外。
    每个支持的HTTP方法的处理程序函数在源中的其他地方定义,然后使用 CompositionView.add 方法。第一个参数是要处理的HTTP方法列表(例如。 ['GET', 'POST'] ),第二个是处理函数

    这样就可以既分开定义视图函数,又将这些视图函数注册到一个路由地址

    讨论群:249728408
  • 相关阅读:
    C++ 多线程
    C++ 信号处理
    首页流量监控代码
    macro-name replacement-text 宏 调试开关可以使用一个宏来实现 do { } while(0)
    color depth 色彩深度 像素深度
    数据更新 数据同步 起始点 幂等同步历史数据
    获取当前调用函数名 方法名
    版本号风格为 Major.Minor.Patch
    query_string查询支持全部的Apache Lucene查询语法 低频词划分依据 模糊查询 Disjunction Max
    Cutoff frequency
  • 原文地址:https://www.cnblogs.com/zhongyehai/p/15114986.html
Copyright © 2020-2023  润新知