IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> DjangoRESTframework -> 正文阅读

[网络协议]DjangoRESTframework

? ? web应用模式

????????? ? 前后端分离

? ? ? ? ? ? 前后端不分离

? ? ? 前后端分离:后端仅返回前端所需的数据,不再渲染html页面,不再控制前端效果

? ? ? ? ? ? ? ? ? ? ? ? ? ? 前端展示的效果由前端自己决定

? ? ? ?缺点:前后端耦合度相对较低

????????

? ? ? ? 前后端不分离:前端页面看到的效果都是由后端控制,由后端渲染页面或者重定向

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 前后端耦合度很高

? ? ? RESTful

? ? ? ? ? ? ? 使用restful的原因:

????????????????????????’表现层状态转移‘是一种风格,更是一种协议

?????????????????????????规范化接口访问方式:get post put delete

?????????????????????????资源标识唯一,状态的转化,所有信息都包含在当前请求中,无状态 性,可实现请求缓存

? ? ? ? ? ? ? ? restful设计方法:

????????????????????????

? ? ? ? ? ? ? ? ? ? ? ?1. 尽量将api部署在专用域名下

? ? ? ? ? ? ? ? ? ? ? ?2. 将版本号放在url中

? ? ? ? ? ? ? ? ? ? ? ? 3.资源作为网址,智能有名词,不能有动词,而且所用的名词往往与数 据库的表名对应

? ? ? ? ? ? ? ? ? ? ? ? 4.api中的名词应该使用复数,无论子资源或者所有资源

? ? ? ? ? ? ? ? ? ? ? ? 5.对于资源的具体操作类型,由http动词表示

? ? ? ? ? ? ? ? ? ? ? ? 6.过滤信息,api提供参数

? ? ? ? ? ? ? ? ? ? ? ?7. 状态码,服务器想用户返回的状态码和提示信息,方括号中是该状态 码对应的http动词

????????????????????????????????

?????????????????????????200:服务器成功返回用户请求的数据

? ? ? ? ? ? ? ? ? ? ? ? ?201:用户新建或修改数据成功

? ? ? ? ? ? ? ? ? ? ? ? ?202:表示一个请求已经进入后台排队

? ? ? ? ? ? ? ? ? ? ? ? ?204:用户删除数据成功

? ? ? ? ? ? ? ? ? ? ? ? ?400:用户发出的请求有错误,服务器没有进行新建或修改数据的操作

? ? ? ? ? ? ? ? ? ? ? ? ?401:表示用户没有权限

? ? ? ? ? ? ? ? ? ? ? ? ?403:表示用户得到授权

? ? ? ? ? ? ? ? ? ? ? ? ?404:表示用户的到授权,但是访问时被禁止的

? ? ? ? ? ? ? ? ? ? ? ? ?406:用户格式不可得

? ? ? ? ? ? ? ? ? ? ? ? ?410:用户请求的资源被永久删除

? ? ? ? ? ? ? ? ? ? ? ? ?422:当创建一个对象时,发生验证错误

? ? ? ? ? ? ? ? ? ? ? ? ?500:服务器发生错误,用户无法判断发出的请求是否成功

? ? ? ? ? ? ? ? ? ? ? ?8.错误处理,返回信息将error作为键名

? ? ? ? ? ? ? ? ? ? ? ?9.返回结果

????????????????????????GET/collection:返回资源对象的列表(数组)

????????????????????????GET/collection/resource:返回单个资源对象

????????????????????????POST/collection:返回新生成的资源对象

????????????????????????POST/collection/resource:返回完整的资源对象

????????????????????????PATCH/collection/resource:返回完整的资源对象

????????????????????????DELETE/collection/resource:返回一个空文档

?serializer

? ? ? ? 序列化:将程序中的一个数据结构类型转换为其他格式(字典、JSON、XML等),例如将Django中的模型类对象装换为JSON字符串,这个转换过程我们称为序列化。

? ? ? ? 反序列化将其他格式(字典、JSON、XML等)转换为程序中的数据,例如将JSON字符串转换为Django中的模型类对象,这个过程我们称为反序列化。

DjangoRESTframework的特点

????????提供了定义序列化器serializer的方法,可以快速根据Django ORM或者其他库自动序列化或反序列化

? ? ? ? 提供了丰富的类视图,Mixin扩展类,简化视图的编写

? ? ? ? 丰富的定制层级,函数视图,类试图,视图集合到自动生成API

? ? ? ? 多种身份认证和权限认证

? ? ? ? 内置限流

? ? ? ? 直观的API web界面

? ? ? ? 可扩展,插件丰富

DRF搭建

? ? ? ? ? ? ?pip install djangorestframework

? ? ? ? ? 添加rest_framework应用

? ? ? ?INSTALLED_APPS=[

? ? ? ? ...

? ? ? ? 'rest_framework'? ? ? ?

]

Serializer序列化器

????????? ? ? ? ? ? ? ?

?

?

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-11-17 13:06:20  更:2021-11-17 13:06:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年7日历 -2024/7/3 21:29:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码