一、WEB应用模式
 
1.前后端不分离
前后端混合开发(前后端不分离),返回的是html的内容,需要渲染页面,写模版
2.前后端分离
专注于后端接口,返回json、xml格式的数据
 
 
二、API接口
定义:通过网络规定了前后台信息交互规则的url链接,也就是前后台信息交互的媒介
WebApi接口四大特点:
1.返回数据的url链接 2.请求方式:get、post、put、patch、delete 3.请求参数:json或xml的key-value类型数据 4.响应结果:json或者xml格式的数据
 
三、restful 规范
REST全称是Representational State Transfer
Restful是一种定义web api接口的设计风格
这种风格的理念认为后端开发数据就是提供数据的,对外提供的是数据资源的访问接口,所以在定义接口时,客户端访问的url路径就表示这种要操作的数据资源

  1. # 10条规范
  2.  
  3. 1.数据的安全保障
  4. url链接一般都采用https协议进行传输
  5. 采用https协议,可以提供数据交互过程中的安全性
  6.  
  7. 2.接口特征表现
  8. api关键字标识接口url
  9. 看到api,就代表该请求url链接是完成前后端数据交互
  10. 例如: https://www.baidu.com/api or https://api.baidu.com
  11.  
  12. 3.多数据版本共存
  13. url链接中标名数据版本
  14. 例如: https://api.baidu.com/v1 or https://api.baidu.com/v2
  15. 链接中的v1v2就是不同数据版本的体现,可以更好兼容新老版本客户端
  16.  
  17. 4.数据即资源,均使用名词(可负数)
  18. 接口一般都是完成前后端端数据交互,交互的数据我们称之为资源
  19. 一般提倡使用资源的复数形式,可以让访问信息更直观,尽量不要出现操作资源的动词
  20. 例如:https://api.baidu.com/book or https://api.baidu.com/books
  21. #错误示范
  22. 例如:hppts://api.baidu.com/get_book or https://api.baidu.com/delete-user
  23. #特殊接口
  24. 特殊的接口可以出现动词,因为这些接口一般没有一个明确资源,或者动词就是接口的核心含义
  25. 例如:https://api.baidu.com/login or https://api.baidu.com/place/search
  26.  
  27. 5.资源操作由请求方式决定(method)
  28. 操作资源一般都会涉及到增删改查,我们提供请求方式来标识增删改查动作
  29. https://api.baidu.com/books - get请求:获取所有书
  30. https://api.baidu.com/books/1 - get请求:获取主键为1的书
  31. https://api.baidu.com/books - post请求:新增一本书
  32. https://api.baidu.com/books/1 - put请求:整体修改主键为1的书
  33. https://api.baidu.com/books/1 - patch请求:局部修改主键为1的书
  34. https://api.baidu.com/books/1 - delete请求:删除主键为1的书
  35.  
  36. 6.过滤-通过在url上传参的形式传递搜索条件
  37. https://api.example.com/v1/zoos?limit=10:指定返回记录的数量
  38. https://api.example.com/v1/zoos?offset=10:指定返回记录的开始位置
  39. https://api.example.com/v1/zoos?page=2&per_page=100:指定第几页,以及每页的记录数
  40. https://api.example.com/v1/zoos?sortby=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序
  41. https://api.example.com/v1/zoos?animal_type_id=1:指定筛选条件
  42.  
  43. 7.响应状态码-通过状态码来判断响应
  44. 1.正常响应-状态码2xx
  45. 200:常规请求
  46. 201:创建成功
  47. 2.重定向响应-状态码3xx
  48. 301:永久重定向
  49. 302:临时重定向
  50. 3.客户端异常-状态码4xx
  51. 403:请求无权限
  52. 404:请求路径不存在
  53. 405:请求方法不存在
  54. 4.服务器异常-状态码5xx
  55. 500:服务器异常
  56.  
  57. 8.错误处理
  58. 应返回错误信息,error当做key
  59. {'error':'参数错误'}
  60.  
  61. 9.返回结果,针对不同的操作,服务器向用户返回的结果应该符合以下规范
  62. GET /collection:返回资源对象的列表(数组)
  63. GET /collection/resource:返回单个资源对象
  64. POST /collection:返回新生成的资源对象
  65. PUT /collection/resource:返回完整的资源对象
  66. PATCH /collection/resource:返回完整的资源对象
  67. DELETE /collection/resource:返回一个空文档
  68.  
  69. 10.需要url请求的资源需要带请求链接
  70. 例如:{
  71. 'info':user,
  72. 'img':'https://img.png'
  73. }
 
四、安装和注册
Django rest framework 框架(简称drf)
  1. 1.安装: pip3 install djangorestframework
  2.  
  3. 2.settings注册app
  4. INSTALLED_APPS = [
  5. 'rest_framework',
  6. ]
 

1.Django-Rest-Framework入门规范的更多相关文章

  1. django rest framework 入门

    django rest framework 入门1-序列化 Serialization 分类: Python 2013-01-22 22:24 11528人阅读 评论(0) 收藏 举报 djangop ...

  2. django rest framework restful 规范

    内容回顾: . django请求生命周期 -> 执行遵循wsgi协议的模块(socket服务端) -> 中间件(路由匹配) -> 视图函数(业务处理:ORM.模板渲染) -> ...

  3. Django REST framework入门 (转自中文文档)

    快速入门 我们将创建一个简单的允许管理员用户查看和编辑系统中的用户和组的API. 项目设置 创建一个名为 tutorial 的新django项目,然后启动一个名为 quickstart 的新app. ...

  4. 121、Django rest framework入门使用

    框架介绍 为你的django平台通过model生成对应的restfull api,并可以通过对应的http接口来进行 post .get.put.delete等操作.本文是也并非入门级别,不会带你去了 ...

  5. Django REST framework快速入门指南

    项目设置 创建一个名为tutorial的新Django项目,然后开始一个名为quickstart的新应用程序. # Create the project directory mkdir tutoria ...

  6. day71:drf:API接口&Restful API规范&Django Rest Framework&drf中的序列化和反序列化功能

    目录 1.web应用模式 2.API接口 3.Restful API规范 4.序列化 5.Django Rest Framework 1.drf的简单介绍 2.drf的特点 3.如何安装drf 4.d ...

  7. Django REST Framework简单入门(一)

    Django REST Framework(简称DRF),是一个用于构建Web API的强大且灵活的工具包. REST这个词,是Roy Thomas Fielding在他2000年的博士论文中提出的. ...

  8. Django REST framework快速入门(官方文档翻译翻译)

    开始 我们将创建一个简单的API来允许管理员用户查看和编辑系统中的用户和组. 项目设置 创建一个新的django项目,命名为:<tutorial>,然后创建一个新的应用程序(app),命名 ...

  9. Django REST framework完全入门

    Django REST framework 一个强大灵活的Django工具包,提供了便捷的 REST API 开发框架 我们用传统的django也可以实现REST风格的api,但是顶不住Django ...

  10. 用Django Rest Framework和AngularJS开始你的项目

    Reference: http://blog.csdn.net/seele52/article/details/14105445 译序:虽然本文号称是"hello world式的教程&quo ...

随机推荐

  1. my2sql工具之快速入门

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. GreatSQL是MySQL的国产分支版本,使用上与MySQL一致. my2sql工具之快速入门 1.什么是my2sql ...

  2. jQuery 选择器选中某节点,在后续的链式操作函数内使用 $(this) 的结果是 Window 对象,而非该节点对象

    <ul class="tree-ocx"> <li class="tree-ocx-li" data-displayed="fals ...

  3. Java SE 15 新增特性

    Java SE 15 新增特性 作者:Grey 原文地址:Java SE 15 新增特性 源码 源仓库: Github:java_new_features 镜像仓库: GitCode:java_new ...

  4. C#.NET ORM FreeSql 读取使用 US7ASCII 的 Oracle 数据库中文显示乱码问题

    前言 关于 Oracle US7ASCII 中文乱码的问题,Ado.Net 和 Odbc 无法解决.包括最新的.Net Core..NET6..NET7 都无法解决这个问题. FreeSql 对 Or ...

  5. 最短路径算法-迪杰斯特拉(Dijkstra)算法在c#中的实现和生产应用

    迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他节点的最短路径. 它的主要特点是以起始点为中心向外层层扩展(广度优先遍历思想),直到扩展到终点为止 贪心算法(Greedy ...

  6. QPainter. QpaintDevice 绘图设备

    QPaintDevice 绘图设备 1 QPixmap QImage Qbitmap(黑白色) QPicture QWidget 2 QPixmap 对不同平台做了显示优化  fill(填充颜色) Q ...

  7. 硬核解析MySQL的MVCC实现原理,面试官看了都直呼内行

    1. 什么是MVCC MVCC全称是Multi-Version Concurrency Control(多版本并发控制),是一种并发控制的方法,通过维护一个数据的多个版本,减少读写操作的冲突. 如果没 ...

  8. Ansible_基础模块

    特点:无主从,即装即用,基于ssh 安装ansible yum install epel-release -y yum install ansible -y 定义主机清单 vim /etc/ansib ...

  9. Sublime Text简单使用方法

    一.新建和保存文件 一.点击文件,选择新建文件或者快捷键Ctrl+N 二.另存文件,选择保存位置,这里项目的命名以.py为后缀 二.保存代码 快捷键Ctrl+S,上方文字出现小圆点表示未保存 三.运行 ...

  10. tar.gz方式安装nacos设置使用systemct进行service方式的管理并设置开机自启动--废弃不用这个

    nacos解压缩目录是:/opt/nacos 编写shell脚本 # vim /opt/nacos/bin/nacos.sh #!/bin/bash source /etc/profile workD ...