ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

drf

2022-06-13 17:33:47  阅读:181  来源: 互联网

标签:-- 接口 xx api https com drf


  • web开发模式

  • api接口

  • api接口测试工具

  • restful规范

  • 序列化反序列化

  • 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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有