Python-Django-Djangorestframwork

本文深入分析了Django中的类视图(CBV)和函数视图(FBV)的源码,解释了它们在路由配置中的工作原理。同时,详细介绍了RESTful API设计的十大规范,包括资源定位、HTTP方法使用、状态码和错误处理等,为开发者提供了创建高效、规范的Web服务的指导。

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/

转载于:https://www.cnblogs.com/du-jun/p/10402894.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值