首页 > 其他分享 >【1.0】DRF之引入

【1.0】DRF之引入

时间:2023-07-31 12:36:59浏览次数:37  
标签:__ 1.0 Postman app 接口 API 引入 请求 DRF

【一】web应用模式

【1】前后端混合开发

  • 后端人员
    • 既要写后端,django
    • 又要写前端

【2】前后端分离

  • 后端人员
    • 只写后端,写一个个的API接口
  • 前端人员
    • 只写前端
  • 最后项目写完
    • 前后端联调

【二】API接口

【1】详解

【1】介绍

  • API接口(Application Programming Interface,应用程序编程接口)是一组定义了不同软件组件之间交互方式的规范。
  • 它可以使不同的软件系统能够相互通信、共享数据和功能。
  • API接口通过提供一系列定义良好的方法和规则,允许开发者使用预先定义的接口调用其他软件组件的功能,而无需了解底层实现细节。

【2】详解

  • 功能定义:

    • API接口定义了软件组件可以提供的功能。

    • 这些功能可以包括获取数据、执行操作或访问外部资源等。

    • 通过使用API接口,开发者可以直接调用这些功能,而不需要了解具体的实现细节。

  • 参数和返回值:

    • API接口还定义了方法的参数和返回值。

    • 开发者需要按照接口定义提供正确的参数,并处理返回的结果。

    • 通过定义清晰的参数和返回值,API接口可以确保开发者和组件之间的交互更加可靠和易于理解。

  • 协议和格式:

    • API接口定义了组件之间通信的协议和数据格式。

    • 常见的协议包括HTTP、REST、SOAP等,而数据格式可以是JSON、XML等。

    • 通过遵循相同的协议和格式,不同的软件组件可以无缝地进行通信和数据交换。

  • 认证和安全性:

    • API接口通常还涉及认证和安全性机制,以确保只有经过授权的用户才能访问接口。

    • 常见的认证方式包括使用API密钥、OAuth等。

    • 同时,API接口也要考虑数据传输的安全性,例如使用HTTPS协议进行数据加密。

  • 错误处理:

    • API接口需要定义错误处理机制,以便处理发生在调用过程中的异常情况。
    • 这包括参数错误、权限不足、网络错误等。
    • 通过提供明确的错误代码和错误信息,API接口可以帮助开发者更好地理解问题所在,并进行相应的处理。

【3】总结起来

  • API接口是不同软件组件之间交互的规范,并定义了功能、参数、返回值、协议、安全性和错误处理等方面的内容。
  • 遵循API接口可以帮助开发者简化开发过程,提高代码重用性和系统扩展性,同时也促进了软件组件之间的协作与集成。

【2】自解

  • 为了在团队内部形成共识、防止个人习惯差异引起的混乱

    • 我们需要找到一种大家都觉得很好的接口实现规范
    • 而且这种规范能够让后端写的接口,用途一目了然,减少双方之间的合作成本。
  • 通过网络,规定了前后台信息交互规则的url链接

    • 也就是前后台信息交互的媒介
    • 它称之为API接口
  • 前端:

    • 向后端发送请求,获取数据
    • 127.0.0.1:8080/index --->返回数据
  • 后端:

    • 请求某个地址,返回固定的数据
  • 四大特点:

    • url链接:
      • 127.0.0.1:8080/index
    • 有不同的请求方式:
      • get、post、put、patch、delete
    • 请求参数
      • 127.0.0.1:8080/books?name=红楼梦
      • 放在请求体中
    • 响应结果:
      • 一般是json格式,也可能是xml

【三】接口测试工具Postman

【1】详解

Postman是一款常用的接口测试工具,它可用于发送HTTP请求并对响应进行验证。下面将详细介绍Postman的功能和使用方法。

  1. 发送请求:通过Postman,您可以轻松地发送各种类型的HTTP请求,如GET、POST、PUT、DELETE等。您可以设置请求头、请求参数、请求体等,并且支持各种数据格式,包括JSON、XML、表单数据等。

  2. 环境管理:Postman提供了环境管理功能,您可以在测试过程中切换不同的环境,如开发环境、测试环境等。这些环境变量可以在请求中使用,方便了测试不同环境下的接口。

  3. 断言验证:在接口测试中,断言非常重要。Postman具有强大的断言功能,可以对返回的响应进行验证,确保接口的正确性。您可以使用预定义的断言规则,也可以自定义断言逻辑。

  4. 集合和文件上传:Postman允许您创建集合来组织和管理接口测试用例。您可以按照不同的业务场景或模块创建多个集合,并对每个集合进行测试和调试。此外,Postman还支持文件上传,方便测试接口的文件上传功能。

  5. 接口自动化测试:除了手动测试外,Postman还支持接口的自动化测试。您可以使用Postman的测试脚本功能编写自动化脚本,对接口进行批量测试和验证。测试脚本可以使用JavaScript语言编写,并且可以进行各种复杂的逻辑判断和验证。

  6. 协作和共享:Postman提供了团队协作和接口共享的功能。您可以将测试用例、环境和请求等内容共享给其他团队成员,方便团队之间的合作和沟通。

总结来说,Postman是一款功能强大且灵活易用的接口测试工具。它具有发送请求、断言验证、环境管理、集合和文件上传、接口自动化测试等诸多功能,能够满足各种接口测试的需求。无论是初学者还是专业测试人员,都可以通过Postman来快速高效地进行接口测试工作。

【2】简解

  • 写好的接口,要测试,可以使用浏览器来做

  • 但是浏览器只能发送get请求,接口有其他请求方式

  • 专门的接口测试工具(使用习惯,大致一样)

    • postman,大部分公司用的,原来免费, 后来收费了,但是咱们只用免费部分就够了
    • postwomen
    • apifox

【3】安装

  • 下载安装包,双击运行,就安装完成

【4】使用

  • 可以注册,登录后使用
  • 也可以跳过等, 直接使用

【5】post请求的编码格式

  • urlencoded 格式

    • --> 默认格式 b'xx=xx&yy=yy'
  • form-data 格式

    • --> 传文件格式,也可以带数据
  • json格式(用的最多)

    • --> 只能传数据
  • 如果是json形式提交数据

    • --> django中想取,从request.POST取出到的

【补充】

【1】接收urlencoded格式的请求,后端打印接收到的数据:

from flask import Flask, request

app = Flask(__name__)

@app.route('/urlencoded', methods=['POST'])
def handle_urlencoded():
    data = request.form
    print(data)
    return 'Data received'

if __name__ == '__main__':
    app.run()

【2】接收form-data格式的请求,将文件保存到本地并打印数据:

import os
from flask import Flask, request

app = Flask(__name__)

@app.route('/formdata', methods=['POST'])
def handle_formdata():
    file = request.files['file']
    filename = file.filename
    save_path = '/path/to/save/directory/' + filename  # 请在此替换为保存文件的实际路径
    file.save(save_path)
    print(request.form)
    return 'File saved and data received'

if __name__ == '__main__':
    app.run()

【3】接收json格式的请求,打印接收到的数据:

from flask import Flask, request
import json

app = Flask(__name__)

@app.route('/json', methods=['POST'])
def handle_json():
    data = json.loads(request.data)
    print(data)
    return 'Data received'

if __name__ == '__main__':
    app.run()
  • 以上是使用Flask框架的示例代码。
  • 根据实际情况,你可能需要调整代码中的路径、主机和端口等参数。
  • 同时,请确保已安装所需的依赖库(如Flask)以运行这些示例。

标签:__,1.0,Postman,app,接口,API,引入,请求,DRF
From: https://www.cnblogs.com/dream-ze/p/17593131.html

相关文章

  • 【3.0】DRF之初识
    【一】序列化与反序列化api接口开发,最核心最常见的一个过程就是序列化【1】序列化把我们识别的数据转换成指定的格式提供给别人。例如:我们在django中获取到的数据默认是模型对象(queryset)但是模型对象数据无法直接提供给前端或别的平台使用所以我们需要把数据进行......
  • 【2.0】DRF之Restful规范
    【一】Restful【1】介绍Restful(RepresentationalStateTransfer)是一种软件架构风格,它定义了一组规范和约束,用于设计可伸缩、可维护和易于集成的分布式系统。Restful架构的核心概念是资源(Resource)和资源的表述(Representation)。资源是指系统中的任何信息,可以是一个文档、......
  • 【5.0】DRF之序列化组件
    【一】序列化组件介绍做序列化做反序列化在反序列化保存到数据库之前,做数据库校验【1】介绍DRF(DjangoRESTframework)是一个用于构建基于Django的WebAPI的强大框架。在DRF中,序列化组件是其中一个核心组件,用于在API请求和响应中处理数据的转换和验证。序列......
  • 【4.0】DRF之Request类源码分析
    【一】引入classBooksView(APIView):defpost(self,request):''':paramrequest:新的request,不是原来的那个:return:'''print(type(request))#rest_framework中的新request#继承APIView......
  • 【6.0】DRF之序列化组件高级
    【一】序列化高级之Source【补充】on_delete的参数详解models.CASCADE(级联删除):当删除与该字段关联的对象时,所有相关的对象将被级联删除。例如,如果一个出版社对象被删除了,与该出版社相关联的所有图书对象也会被删除。models.SET_DEFAULT:(设置为默认值):当删除与该字段关联的对......
  • 【7.0】DRF之DRF请求与响应
    【一】Request类对象分析【1】.datarequest.data返回解析之后的请求体数据。类似于Django中标准的request.POST和request.FILES属性,但提供如下特性:包含了解析之后的文件和非文件数据包含了对POST、PUT、PATCH请求方式解析后的数据利用了RESTframework的parsers解析器,不......
  • 【8.0】DRF之DRF视图扩展类
    【一】5个视图扩展类GenericAPIView+5个视图扩展类+序列化类+Response写接口【1】5个视图扩展类对应五个方法查询所有数据新增一条数据查询单条数据修改一条数据删除一条数据【2】写5个类的好处就是解耦合,提高代码的可扩展性这五个类不叫视图类,叫视图扩展......
  • 【9.0】DRF之路由
    【一】路由的写法【1】原始写法介绍是指手动编写路由规则的方式。使用path()函数或re_path()函数来定义路由规则,并将其与对应的视图函数或类关联起来。例如假设有一个名为book的应用,它包含了一个处理图书列表的视图函数book_list,以及一个处理单个图书详情的视图函数book_......
  • 【10.0】DRF之登录认证和权限频率组件
    【准备数据】fromdjango.dbimportmodels#Createyourmodelshere.classUserInfo(models.Model):name=models.CharField(max_length=32)password=models.CharField(max_length=64)classUserToken(models.Model):token=models.CharField(max_le......
  • 【二】DRF之介绍
    【一】DjangoRest_Framework【1】核心思想核心思想:缩减编写api接口的代码【2】DRF介绍DjangoRESTframework是一个建立在Django基础之上的Web应用开发框架,可以快速的开发RESTAPI接口应用。在RESTframework中,提供了序列化器Serialzier的定义,可以帮助我们简化序列化......