一、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路径就表示这种要操作的数据资源

# 10条规范

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

2.settings注册app
INSTALLED_APPS = [
'rest_framework',
]
 

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. 基于 DolphinScheduler 的数据质量检查实践

    今天给大家带来的分享是基于 Apache DolphinScheduler 的数据质量检查实践,分享的内容主要为以下四点: " 为什么要做数据质量检查? 为什么要基于 DolphinSche ...

  2. jbd2的死锁分析

    已经运行多年的jbd2,它还是死锁了 背景:这个是在centos7的环境上复现的,内核版本为3.10.0-957.27.2.el7 下面列一下我们是怎么排查并解这个问题的. 一.故障现象 oppo云内 ...

  3. Python自学笔记6-列表有哪些常用操作

    列表是Python中最重要的数据类型,它使用的频率非常非常的高,最大程度的发挥Python的灵活性. 和字符串一样,列表的操作方法也有很多.如果说一头钻进去,可能会导致学习没有重点.在这篇文章当中,首 ...

  4. 如何通过C#/VB.NET设置Word文档段落缩进

    缩进是指调整文本与页面边界之间的距离.在水平标尺,有四个段落缩进滑块:首行缩进.悬挂缩进.左缩进以及右缩进.在对于word文档的录入时,常常需要注意录入的格式,通过合理地设置段落格式,可以让文稿看起来 ...

  5. CF-1453B

    Problem - 1453B - Codeforces 题意: 一个数组,每次可以选择一个后缀,将其加一或者减一,开始的时候可以免费改变一个数的数值,判断让所有数字相等所需要的最小操作数. 题解: ...

  6. etcd v3版本生产级集群搭建以及实现一键启动脚本

    本专栏的上一篇文章写了<长篇图解etcd核心应用场景及编码实战>,本文继续.后续计划章节内容如下: <长篇图解etcd核心应用场景及编码实战> <搭建高可用etcd集群& ...

  7. 一文读懂,硬核 Apache DolphinScheduler3.0 源码解析

    ​ 点亮 ️ Star · 照亮开源之路 https://github.com/apache/dolphinscheduler 本文目录 1 DolphinScheduler的设计与策略 1.1 分布 ...

  8. linux下搭建ftp文件服务器

    linux下搭建ftp文件服务器 一.搭建步骤(以在centos7中搭建为例) 1.首先检查一下系统中是否已经安装了vsftpd软件 # 查看是否安装vsftpd rpm -q vsftpd rpm ...

  9. 如何在Windows中查询证书颁发机构已颁发的证书

    有时候需要看一下证书颁发机构已经颁发出去的证书,看看某个用户或者某个计算机获取过的证书有哪些.通常可以在证书颁发机构的MMC中查看.对于测试环境或者刚开始用的CA来说,这样查看挺简单的.但是对于用了一 ...

  10. Python数据科学手册-Numpy入门

    通过Python有效导入.存储和操作内存数据的技巧 数据来源:文档.图像.声音.数值等等,将所有的数据简单的看做数字数组 非常有助于 理解和处理数据 不管数据是何种形式,第一步都是 将这些数据转换成 ...