DRF从入门到精通一(DRF介绍、API接口、接口测试工具)

文章目录

  • DRF入门规范
  • 一、Web应用模式
    • 1.前后端混合开发模式
    • 2.前后端分离开发模式
  • 二、API接口
    • 概念
    • Json格式与XML格式的区别
    • 前端、前台、后端以及后台的区别
  • 三、接口测试工具:`Postman/Apifox`

DRF入门规范

DRF(django rest framework)是基于django的一个框架,可以帮助我们快速开发restful规范的的接口框架https://www.django-rest-framework.org/

一、Web应用模式

在开发Web应用中,有两种应用模式:

1.前后端混合开发模式

前后端混合项目是指前后端代码的混合,前端需要使用模版语法去获取后端的数据,后端需要使用locals在开放局部空间来让前端拿到数据。

  • 模版语法简称Dtl:Django template language
  • 模版渲染:在后端完成

大体流程就是:前端在编写完静态页面之后,需要发送给后端人员做二次处理,所有的html代码和数据在服务器拼接好,等前后端处理好模版之后在做整合,然后一次性将所有内容发送到客户端,浏览器执行代码,将内容呈现给客户。

  • 缺点:前后端交接困难,对彼此代码不熟悉;代码会产生覆盖,工作量大
  • 例如:标签没有闭合二导致页面混乱,JavaScript位置不对导致效果报错,前端人员需要到服务端代码修改。从公共服务器下载,修改后在传送到公共服务器中,服务端人员需要更新到本地计算机中才能向公共服务器中上传文件,否则就会覆盖

在这里插入图片描述

2.前后端分离开发模式

前后端分离开发模式是指代码上的分离,前后端代码上面的数据传输和交互使用API接口的方式使用Json格式的数据进行交互,脱离了模版语法。也就是说前后端与浏览器的交互是分开的把界面交互和数据交互分开(这里的数据交互必须是Json格式或者XML,现在XML基本很少了),后端人员向前端开放数据接口(路由),视图层不在直接返回给浏览器了,而是与前端做起了数据交互,实际上返回界面的还是前端,前端工作人员调用接口获取数据,从而将数据显示到页面

  • 后端就做后端的事:开发API接口以及跟前端进行交互
  • 前端就做前端的事:使用Ajax和后端交互

大体流程:浏览器发送请求,这时候前端返回一个静态页面,当静态页面中触发js事件的时候,通过Ajax向服务器端发送请求,索要数据,然后将数据拿到之后再填充到浏览器的页面中。

  • 优点:职责分工明确,独立开发,互不影响。前端人员负责数据展示,服务器段人员负责业务逻辑编写。界面出现问题则找前端,逻辑问题找服务器端。

在这里插入图片描述

而当需要数据测试的时候,前端可以使用Mock平台来模拟接口数据,而后端可以使用软件Apifox或者Postman模拟前端发送请求。


二、API接口

概念

API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。API除了有应用“应用程序接口”的意思外,还特指 API的说明文档,也称为帮助文档。

API:应用程序接口(API:Application Program Interface)是一组定义、程序及协议的集合,通过 API 接口实现计算机软件之间的相互通信。API 的一个主要功能是提供通用功能集。程序员通过调用 API 函数对应用程序进行开发,可以减轻编程任务。 API 同时也是一种中间件,为各种不同平台提供数据共享。

简单理解API:
为了在团队内部形成共识、防止因个人习惯差异引起的混乱,我们需要找到并形成团队共识、统一的接口规范,而且这种规范能够让后端写的接口,用途一目了然,减少双方之间的合作成本。

通过网络,规定了前后台信息交互规则的url链接,也就是前后台信息交互的媒介

	http://127.0.0.1:8000/login/  这就是API接口

Web API接口和一般的url链接还是有区别的,Web API接口简单概括有四大特点:

	1.url地址:长得像返回数据的url链接
		https://api.map.baidu.com/place/v2/search
		
	2.请求方式:get、post、put、patch、delete
		采用get方式请求上方接口
		
	3.请求参数:Json格式或者XML格式的key-value类型数据
	'请求数据:地址栏中的数据----->request.GET,请求体中数据:reqeust.POST'
		早些年	前后端交互使用XML格式,ajax其实就是异步JavaScript和XML
		后来	随着Json格式的出现,乃至今日都是主流
		未来	可能会有更高效、安全的交互格式会替代目前的Json格式
	
	4.响应结果:Json格式或者XML格式的数据

Json格式与XML格式的区别

  1. JSONJavaScript Object NotationXML是可扩展标记语言
  2. JSON是基于JavaScript语言;XML源自于SGML
  3. JSON是一种表示对象的方式;XML是一种标记语言,使用标记结构来表示数据项。
  4. JSON不提供对命名空间的任何支持;XML支持名称空间
  5. JSON支持数组;XML不支持数组
  6. XML的文件相对难以阅读和解释;而JSON相比较XML的文件非常易于阅读
  7. JSON支持结束标记;XML有开始和结束标签
  8. JSON的安全性较低;XMLJSON更安全
  9. JSON不支持注释;XML支持注释
  10. JSON仅支持UTF-8编码XML支持各种编码

前端、前台、后端以及后台的区别

前后端是指代码上的,前后台是指用户视觉上的。

在这里插入图片描述

前端指的是大前端,不仅仅是网站,还有app、小程序。而后端指的是Python、Golang、Java等的Web后端


三、接口测试工具:Postman/Apifox

Postman是一款接口调试工具,是一款免费的可视化软件,同时支持各种操作系统平台。主要功能是发送http请求。

Postman可以直接去官网地址下载:https://www.postman.com/downloads/,然后傻瓜式安装即可


Apifox也是一款接口调试工具,也是免费的可视化软件,相较而言我觉得是比Postman更好用一下。
Apifox = Postman + Swagger(接口文档) + Mock(假数据) + JMeter(压测工具)

Apifox也是直接去官网地址下载:https://apifox.com/,下载后安装选择自己想要安装的位置即可

因为这两款软件操作都差不多,我这里就使用一下Apifox软件来展示吧

  1. 创建团队
    在这里插入图片描述

  2. 创建项目
    在这里插入图片描述

  3. 新建接口
    在这里插入图片描述

  4. 大致操作
    在这里插入图片描述

  5. 请求体
    在这里插入图片描述

  6. 请求头
    在这里插入图片描述

也可以看一下Postman的吧,Postman也是需要注册才可以使用,而Apifox只需要微信扫码即可
但是Postman无需创建团队以及创建项目即可使用,如下
在这里插入图片描述

当然市面上还有很多接口测试软件,有些是软件的也有些是网页的,具体看个人喜好选择。
Postman、Eolink、SoapUI、JMeter、REST-Assured、apizza、Postwoman等等这些。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/247415.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

文心一言 VS 讯飞星火 VS chatgpt (157)-- 算法导论12.3 4题

四、用go语言,删除操作可交换吗?可交换的含义是,先删除 x 再删除 y 留下的结果树与先除 y 再删除 x 留下的结果树完全一样。如果是,说明为什么? 否则,给出一个反例。 文心一言: 在Go语言中,删除操作是不…

企业信息建设现状

信息化建设是传统计算机与互联网技术高速发展并融合的产物,现阶段已经成为引领产业创新的决定性技术手段。 随着信息化的不断发展与进步,各行各业都开始了信息化的建设与应用。信息化是未来发展的大趋势,企业运用信息技术可以大幅度提高员工效…

知识|基于混合模式的多余度飞控全数字仿真系统研究

*余度(Redundancy):一种确保安全的设计手段,使得出现两个及以上故障时,才会引起既定不希望发生的工作状态。 飞行控制软件主要完成飞行传感器数据处理、飞行姿态控制和余度管理任务,对保证飞机安全性和可靠…

leetCode算法—2.两数相加

1.给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0…

干货:企业如何讲好品牌故事

品牌故事讲得好,不仅能够体现品牌特色还能向消费者传递品牌精神的重要工具,优秀的品牌故事能够促进产品销量,为品牌带来曝光率,今天媒介盒子就来和大家聊聊:如何讲好品牌故事。 一、 品类历史和故事 品牌虽然是新品牌…

基于单片机智能家具无线遥控控制系统设计

**单片机设计介绍,基于单片机智能家具无线遥控控制系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的智能家具无线遥控控制系统设计可以实现对家具(如灯具、窗帘、空调等)的…

【Python】解读a+=b 和 a=a+b是否一样?看完恍然大悟!

文章目录 前言一、可变对象和不可变对象总结 前言 在Python中,对于可变和不可变对象的行为差异是一个重要概念,特别是在涉及到和操作时。理解这一点对于编写高效且无误的代码至关重要。 一、可变对象和不可变对象 首先,让我们谈谈可变和不可…

JVM的内存分区以及垃圾收集

1.JVM的内存分区 1.1方法区 方法区(永久代)主要用来存储已在虚拟机加载的类的信息、常量、静态变量以及即时编译器编译后的代码信息。该区域是被线程共享的。 1.2虚拟机栈 虚拟机栈也就是我们平时说的栈内存,它是为java方法服务的。每个方法在执行的…

分析若依的文件上传处理逻辑

分析若依的文件上传处理逻辑 注:已经从若依框架完成拆分,此处单独分析一下人家精彩的封装,也来理解一下怎么做一个通用的上传接口!如有分析的,理解的不透彻的地方,大家多多包含,欢迎批评指正&am…

【C语言必学知识点五】指针

指针 导言一、指针与指针变量二、指针变量的创建和指针类型三、指针类型的意义3.1 指针 /- 整数3.2 指针解引用 四、野指针4.1 定义4.2 野指针的成因4.3 指针未初始化4.4 指针越界访问4.5 指针指向的空间被释放4.6 如何规避野指针 五、指针运算5.1指针-整数5.2 指针-指针5.2.1 …

B037-Mybatis基础

目录 为什么需要Mybatis?mybatis简介入门案例其余见代码查询流程增删改流程 - 变动数据要加事务去持久化抽取公共类 mapper接口开发规则概述代码 mapper.xml引入本地约束文件别名日志管理作用log4j的使用规范 井大括号与dollar大括号的区别 框架:半成品&…

Linux篇:信号

一、信号的概念: ①进程必须识别能够处理信号,信号没有产生,也要具备处理信号的能力---信号的处理能力属于进程内置功能的一部分 ②进程即便是没有收到信号,也能知道哪些信号该怎么处理。 ③当进程真的受到了一个具体的信号的时候…

Word公式居中+序号右对齐

Word公式居中序号右对齐 # 号制表位法表格法Mathtype法 # 号 制表位法 表格法 Mathtype法 参考1 参考2

力扣每日一题:2132. 用邮票贴满网格图(2023-12-14)

力扣每日一题 题目:2132. 用邮票贴满网格图 日期:2023-12-14 用时:38 m 32 s 思路:使用前缀和+差分,只是往常是一维,现在变二维了,原理差不多 时间:22ms 内存&#xff1…

certum ev ssl证书1180元一年,360浏览器显示公司名

Certum旗下的EV SSL证书是审核最严的数字证书,不仅对网站传输数据进行加密,还可以对网站身份进行验证,除此之外,它独有的绿色地址栏提升了网站的真实性,增强了客户对网站的信任感。今天就随SSL盾小编了解Certum旗下的E…

【Spring Boot】视图渲染技术之Freemarker

一、引言 1、什么是Freemarker FreeMarker是一款模板引擎,基于模板和要改变的数据,并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。它不是面向最终用户的,而是一个Java类库,是一款…

LAMP平台部署及应用

1、安装PHP软件包 1.1、准备工作 检查软件是否安装,避免冲突 [rootyang ~]# rpm -e php php-cli php-ldap php-common php-mysql --nodeps 错误:未安装软件包 php 错误:未安装软件包 php-cli 错误:未安装软件包 php-ldap 错误…

使用 Python 使用贝叶斯神经网络从理论到实践

一、说明 在本文中,我们了解了如何构建一个机器学习模型,该模型结合了神经网络的强大功能,并且仍然保持概率方法进行预测。为了做到这一点,我们可以构建所谓的贝叶斯神经网络。 这个想法不是优化神经网络的损失&#xff0…

2. PyTorch——Tensor和Numpy

2.1Tensor和Numpy Tensor和Numpy数组之间具有很高的相似性,彼此之间的互操作也非常简单高效。需要注意的是,Numpy和Tensor共享内存。由于Numpy历史悠久,支持丰富的操作,所以当遇到Tensor不支持的操作时,可先转成Numpy…

获取和移除cookie的方法

下载npm的cookie插件, 在utils.js文件中引入插件: 封装原始的Cookies.get()方法: 在xxxx.vue文件中引入方法: 使用getCookie方法获取cookie: 封装 移除cookie: export const removeCookie name>{ const options { path: /, domain: xxx.com }; Cookies.remove(name, opti…