drf_day1drf简单介绍
drf_day1
web开发模式
1.只要是通过http,websocket都是web开发者模式
2.两大类
前后端混合开发:
数据通过模板语法渲染加上前端的js,css,html,针对于模板语法是先执行模板语法渲染之后再执行前端的,前端只要htnl,js,css
前端后端分离开发(主流):
后端人员只写后端,对外提供一个api接口供前端使用
前端就写前端咯
前后端混写执行流程图
http://test.liuqingzheng.top/uPic/image-20220613111525937.png
前后端分离执行流程
http://test.liuqingzheng.top/uPic/image-20220613111555997.png
api接口
1.前端通过路由访问路由执行视图函数返回json格式的数据这就叫api接口===>写接口也是有规范的restful规范
2.接口的概念很大,api知识其中的一个分支,http请求返回json数据或者xml数据的这种接口
3.微博会对外提供api接口
针对于最近微博热搜可以直接换调api接口来展示
api接口测试工具
1.接口工具postman,postwoman
2.上传文件form表单内的参数enctype="form-data"
urlencoded格式是form表单和ajax默认提交的数据格式
json请求编码只能用ajax===》参数contentType:application/json
3.针对form-data或者urlencoded编码,可以直接从POST中取出来
针对于json格式数据要在body内取出来,由于json格式识别不了所以回原封不动的放在body内
4.post就是一个替代浏览器给我发送http请求的工具,他能发各种请求更加便于测试
5.collection:可以批量的管理,导入导出很对api接口,并且测试数据不会丢失
postman



restful规范
REST表示
Representational State Transfer # 表征性状态转移
RESTful是一种定义web api接口的一种风格
# 十条restful规范
1.使用https数据交互,https会对数据进行加密,比http更加安全
2.接口地址中带api标识
如:https://api.baidu.com/books # 将api表示放在域名中
https://www.baidu.com/api # 将api表示放在地址中
3.接口地址标识版本标识
-https://api.baidu.com/v1
针对于将接口升级了,我们应该重新开设一个接口以免域名没改变的还能够访问老接口
4.数据就是资源,均使用名字,尽量不要出现动词
例如:删除图书
https://api.baidu.com/v1/books # 规范的
https://api.baidu.com/v1/delete-books # 不规范的
5.资源操作请求方式决定
一种资源的增删改查使用同一个路由改变他们的请求方式处理不同的事
6.地址中带搜索条件
https://api.example.com/v1/zoos?animal_type_id=1 # 指定筛选条件
7.响应状态码
http的响应状态码
1xx 请求正在处理
2xx 成功,200请求成功,201创建成功
3xx 重定向,301临时重定向,302永久重定向
4xx 客户端错误,403没有权限,404资源地址不存在
5xx 服务端错误,根据定义的相应状态码
8.响应中带错误信息
{'code':1000,'msg':''}
9.针对不同操作,服务器向用户返回的结果应该符合以下规范
GET /collection:返回资源对象的列表(列表套字典的形式)
GET /collection/resource:返回单个资源对象 # 字典
PUT /collection/resource:返回完整你问过的资源对象
POST /collection:返回新生成的资源对象
PATCH /collection/resource:返回完整的资源对象
DELETE /collection/resource:返回一个空文档
10.响应中带连接地址
序列化反序列化
序列化指将数据以指定格式数据的转化提供给别人
反序列化指的是将别人以指定格式的转化为我们需要的格式
前后端分离开发中站在开发的角度看
序列化》read(别人都我的数据)》是输出》后端给前端
反序列化》wirte(别人给我数据)》存到数据库中输入》前端给后端
drf快速使用
1.drf # djangorestframework的缩写是django的一个app只能用在django框架上,可以帮我们快速写出符合restful规范的接口
2.drf与django的版本有一定的对应关系
3.请求方式区分操作
post 增
get 获取,根据有无参数来筛选
delete 删除
put 修改
浙公网安备 33010602011771号