Python-Django-Djangorestframwork
1 CBV源码分析(cbv和fbv)
1 在views中写一个类,继承View,里面写get方法,post方法
2 在路由中配置: url(r'^test/', views.Test.as_view()),实际上第二个参数位置,放的还是一个函数内存地址
3 当请求来了,就会执行第二个参数(request,参数),本质上执行view()
4 view内部调用了dispatch()方法
5 dispatch分发方法,根据请求方式不同,执行的方法不同
2 resful规范(10个规范)
-面向资源架构,面向资源编程
-10个规范
-与后台做交互,通常使用https
-域名:
-https://api.baidu.com(存在跨域问题)
-https://www.baidu.com/api/
-版本
-https://www.baidu.com/api/v1
-https://www.baidu.com/api/v2
-路径,视网络上任何东西都是资源,均使用名词表示(可复数)
-https://api.example.com/v1/books
不是:https://api.example.com/v1/delete_one_book
-method来表示增删查改
-https://api.example.com/v1/books get请求,获取所有书
-https://api.example.com/v1/books post请求,新增一本书
-https://api.example.com/v1/book/1 delete请求,删除一本书
-https://api.example.com/v1/book/1 delete请求,获取id为1的这本书
-https://api.example.com/v1/book/1 put/patch请求,修改id为1的这本书
-过滤,通过在url上传参的形式传递搜索条件
-https://api.example.com/v1/books?limit=10:只拿前10本
-https://api.example.com/v1/books?price=10:只拿价格为10的书
-状态码
-{status:100,}
-错误处理,应返回错误信息,error当做key
{
status:101,
errors:'您没有权限操作这个事'
}
-返回结果,针对不同操作,服务器向用户返回的结果应该符合以下规范
GET /collection:返回资源对象的列表(数组)
GET /collection/resource:返回单个资源对象
POST /collection:返回新生成的资源对象
PUT /collection/resource:返回完整的资源对象
PATCH /collection/resource:返回完整的资源对象
DELETE /collection/resource:返回一个空文档
-返回结果中提供链接(获取一本书)
{
id:1
name:lxx
price:12
publish:www.xx.com/api/v1/publish/1
}
3 django中写resful的接口
-postman的使用
-请求地址带反斜杠出现的问题(中间件)
-如果请求地址是/user,路由中配置成'/user/',匹配不上,中间件会自动在后面加 / 再去匹配,能匹配成功,重定向到/user/,加了 / 还匹配不上,就报错
-django.middleware.common.CommonMiddleware
4 drf写resful的接口
5 APIVIew源码分析
对象没有,找父类的dispatch
6 Request
码分析
7 drf之序列化
8 在线格式化json -https://www.json.cn/
最新文章
- java 使用BeanUtils.copyProperties(Object source,Object target) 复制字段值
- hdu 1203
- Linux基础: 网络命令和进程管理
- HS光流算法详解<;转载>;
- CHtml::radioButtonList
- HDFS体系结构
- HDU4614【线段树。】
- Swift - guard关键字(守护)
- 1, sync_with_stdio(), tie()的应用
- 目前所有的ANN神经网络算法大全
- 理解margin负值
- 【DotNet加密方式解析】-- 好文收藏
- PHP生成腾讯云COS请求签名
- thinkphp 自动生成模块目录结构
- [疑难杂症]__当你的Cortana搜索无法使用,显示纯白界面(ps:已解决).
- 创建一个dynamics 365 CRM online plugin (三) - PostOperation
- Unity3D Shader 高斯模糊
- SDN负载均衡
- exits, in, left join性能比较
- 【BZOJ2754】[SCOI2012]喵星球上的点名