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.\r\nhost:11.11.11.11\r\nContent-Type:url-formendo.... \r\n\r\nuser=alex&age=123
POST /index/ http1.1.\r\nhost:11.11.11.11\r\nContent-Type:application/json\r\n\r\n{....} 

分页

- 对从数据库中获取到的数据进行分页处理: 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

 

posted @ 2018-06-03 10:57  高~雅  阅读(845)  评论(0编辑  收藏  举报