zoukankan      html  css  js  c++  java
  • Django rest-framework框架十大功能分析

    rest-framework框架有哪些作用?

    一共有十点。

    路由 

    - 可以通过as_view传参数,根据请求方式不同执行相应的方法
    - 可以在url中设置一个结尾,类似于: .json

    视图

    - 帮助开发者提供了一些类,并在类中提供了多个方法以供我们使用。

    版本

    - 在url中设置version参数,用户请求时候传入参数。在request.version中获取版本,根据版本不同做不同处理

    认证

    - 写一个类并注册到认证类,在类的的authticate方法中编写认证逻辑。
    - 认证成功 返回一个元组(user,auth)
    - 认证失败 raise AuthticateFaild(....)
    - None 匿名

    权限

    - 写一个类并注册到权限类,在类的的has_permission方法中编写认证逻辑。
    - True 有权限
    - False 没有权限

    频率限制

    - 写一个类并注册到频率类,在类的的 allow_request/wait 方法中编写认证逻辑。
    allow_request
    - True
    - False 如果返回False,那么就要执行wait (等待)

    解析器

    - 根据ContentType请求头,选择不同解析器对 请求体中的数据进行解析。

    POST /index/ http1.1.
    host:11.11.11.11
    Content-Type:url-formendo.... 
    
    user=alex&age=123
    POST /index/ http1.1.
    host:11.11.11.11
    Content-Type:application/json
    
    {....} 

    分页

    - 对从数据库中获取到的数据进行分页处理: SQL -> limit offset

    - 根据页码:http://www.luffycity.com/api/v1/student/?page=1&size=10
    - 根据索引:http://www.luffycity.com/api/v1/student/?offset=60&limit=10
    - 根据加密:http://www.luffycity.com/api/v1/student/?page=erd8

    序列化

    - 对queryset序列化以及对请求数据格式校验。

     渲染器

    - 根据URL中传入的后缀,决定将数据如何渲染到页面上。

    根据Django请求声明周期,执行顺序:

    路由-->视图-->版本-->认证-->权限-->频率-->解析器-->序列化-->分页-->渲染

    出现这种问题:

    如何解决?

    setting.py

  • 相关阅读:
    Extjs4.0中清空filefield已选文件
    .net操作读取word中的图像并保存
    WebForm_PostBackOptions未定义 错误排查
    数据库关键字
    VS2008生成WebSite和WebApplication的区别(转载)
    安装天乙论坛(SSH架构的开源项目)时遇到的问题
    Hibernate与Oracle char类型的列之间的兼容问题
    关于spring3使用AOP编程时需要引入哪些jar包的问题
    让IE支持HTML5的Canvas
    IIS + TOMCAT 注意事项
  • 原文地址:https://www.cnblogs.com/gaoya666/p/9101068.html
Copyright © 2011-2022 走看看