其他分享
首页 > 其他分享> > drf

drf

作者:互联网

 

web开始模式

# 我们所见到的软件百分之九十都是web软件,只要通过http,websocket...
# web后端--》python 后端开发--》不仅仅是开发网站
eg:微信 迅雷,百度网盘...
 osi七层 MySQL,redis: tcp传输层--》应用层http
# 两大种
前后端混合开发
   既要写后端(既要写后端(django:python界的web框架),又要写前端(js,css,html + 模板语法(dtl))
   前后端分离(时下主流)
     后端人员只写后端,一点前端都不碰,对外提供接口(django、flask、sanic、fastapi、spring boot,gin,beego...)
     前端人员只写前端 (vue,react)
     如果使用前后端分离模式,dtl,模板语法完全没有用武之地
         
   bom:BOM是browser object model的缩写,简称浏览器对象模型。是用来获取或设置浏览器的属性、行为,例如:新建窗口、获取屏幕分辨率、浏览器版本号等。 比如 alert();弹出一个窗口,这属于BOM
什么是DOM
   dom:js操作html--》通过js插入到html中一些表格,div标签

 

 

 

 

 

api接口

 # 前后台信息交互的媒介
  前端(pc,小程序,app)---》 后端
       路由--》视图函数》返回json数据格式数据 这个东西称之为api接口
       写接口要有规范》restful规范
# 为了在团队内部形成共识、防止个人习惯差异引起的混乱,我们需要找到一种大家都觉得很好的接口实现规范,而且这种规范能够让后端写的接口,减少双方的合作成本

# 别人提供的一些资源,以api接口的形式给你,你就直接访问就可以拿到

# 接口的概念很大》api接口》只针对 http请求返回xml、json数据的这种接口

api接口测试工具

# 后端开发  》开发了很多api接口(可能公司用,给第三方用)
# 写完了,有没有问题 》测试》测试工具》postman...
# 接口测试工具:用法基本一致,以postman为例
# 测试工程师--》接口测试工程师

# form-data urlencoded json请求编码
上传文件 form、ajax表单默认 只能用ajax,contentType:application/json

# django中,如果使用form-data或者urlencoded编码--》提交的数据直接从POST取出来

# 如果是json格式编码,从POST取不出来,只能从request.body 取出来,json转一下才能用

# postman 就是一个替代浏览器,发送http请求的工具
# 因为用浏览器不能发送post请求,只能用代码写ajax发送请求
# 通过postman可以发送任意请求

# collection:可以批量的管理,导入很多api接口

restful规范

# 写api接口,可能想写成什么样就什么样,有个规范》主流认可》restful规范
# REST全称是Representational State Transfer 表整形状态转移

# RESTful是一种定义web API接口的设计风格,尤其适用于前后端分离的应用模式中

# 10条规范
1.使用https数据交互 http+tsl/ssl=http 比http更安全,交互是加密传输
  交互用json-》很轻易被截获--》明文显示给别人,数据不安全
   2.接口地址中带api标识
  https://api.baidu.com.books 域名中
       https://www.baidu.com/api 地址中
   3.接口地址中标识版本标识
  http://api.baidu.com/v1
       
 https://api.weibo.com/2/statuses/user_timeline.json
     -登陆功能:用户名密码  如果把原来的接口改了---》老app还能用吗?
     -升级了app:用户名密码验证码  新写一个接口
   4.数据即是资源,均使用名词,不要出现动词
  删除xx接口
       好的:https://api.baidu.com/v1/xx
    不好的:https://api.baidu.com/v1/delete-xx
       新增xx:https://api.baidu.com/v1/xx
     
   5.资源操作由请求方式决定
   -新增xx :https://api.baidu.com/v1/xx    post
   -删除xx :https://api.baidu.com/v1/xx   delete
   -修改xx :https://api.baidu.com/v1/xx    put
   -获取xx :https://api.baidu.com/v1/xx     get
     
   6.地址中带搜索条件
  https://api.example.com/v1/zoos?animal_type_id=1:指定筛选条件
       https://api.baidu.com/v1/books?name=红楼梦
   
   7 相应状态码
  http的响应状态码
       1xx 请求正在请求
       2xx 成功 200 请求成功 201 创建成功
       3xx 重定向 301 和 302 301和302的区别: 一个是临时重定向一个是永久重定向
       4xx 客户端错误 403 和 404 403:没有权限 404:地址不存在
       5xx 服务端错误
       响应中带状态码
      {code:100}
         
   8. 响应中带错误信息
  {code:999,msg:登录失败}
   9.针对不同操作,服务器向用户返回的结果应该符合以下规范
  GET /collection:返回资源对象的列表(数组)
       GET /collection/resource:返回单个资源对象
       POST /collection:返回新生成的资源对象
       PUT /collection/resource:返回完整的资源对象
       DELETE /collection/resource:返回一个空文档
   10 响应中带链接地址

序列化反序列化

# 序列化:把我们识别的数据转换成指定的格式提供给别人
python后端:python的对象,字典,列表
   前端:字符串,json格式化字符串
   把我们能识别的格式--》转成别人能识别的格式给他
  例如:我们在django中获取到的数据默认是模型对象,但是模型对象数据无法直接提供给前端或者别的平台使用,所以我们需要把数据进行序列化,变成字符串或者json数据,提供给别人
     
# 反序列化:把别人提供的数据转换/还原成我们需要的格式
前端:字符串,json格式字符串 提交给我们
   python后端:把json格式字符串转成我们能够识别的格式:字典,对象,qs对象
   例如:前端js提供过来的json数据,对于python而言就是字符串,我们需要进行反序列化换成模型类对象,这样我们才能把数据保存到数据库中
 
# 前后端分离开发中 》站在后端开发的角度
序列化--》read(别人读我的数据)--》出---》后端给前端
   反序列化--》wite(别人给我数据--》存到数据库)进--》前端给后端

drf快速使用

# djangorestframework的缩写,它是django的一个app(第三方插件),只能用在django框架上
# 可以帮助我们快速的写出符合restful规范的接口

# drf和django的版本有一定的对应关系
如果是django 2.2.2 drf最新可能不支持(稍微降一下drf版本)
   
   
# 快速使用--》以后见到的所有接口,都是这五个和变形
-增加图书:
 -获取一本图书
 -获取所有图书
 -删除一本图书
 -修改一本图书


标签:--,接口,xx,api,https,com,drf
来源: https://www.cnblogs.com/qinyanghua/p/16371607.html