Django(53)二次封装Response

Django(53)二次封装Response前言有时候我们使用drf的Response,会发现默认返回的格式不太友好,每次我们都需要写入以下的格式returnResponse({"status":0,"

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

前言

有时候我们使用drfResponse,会发现默认返回的格式不太友好,每次我们都需要写入以下的格式

return Response({
      "status": 0,
      "message": "成功",
      "results": serializer.data
})

这样会非常麻烦,我们想默认就有statusmessage,所以我们可以二次封装response
 

二次封装Response

我们在项目的目录中新建一个response.py文件

from rest_framework.response import Response


class APIResponse(Response):

    def __init__(self, data_status=0, data_msg='ok', results=None, http_status=None, headers=None, exception=False, **kwargs):
        # data的初始状态
        data = {
            'statusCode': data_status,
            'message': data_msg
        }
        # data的响应数据体
        if results is not None:
            data['results'] = results
        # data的其他数据
        data.update(kwargs)
        super().__init__(data=data, status=http_status, headers=headers, exception=exception)

  上述代码对data字段复了初始值,statusCode值为0,message值为ok,然后判断返回的内容中是否有results字段,有的话data数据中再返回一个results,最后判断是否有额外的参数,比如我们要返回一个token给前端,这样以后我们返回数据的时候,如果默认是成功的类型,只需要写return APIResponse(results=serializer.data)即可

我们这里模拟返回一个token,代码如下

return APIResponse(results=serializer.data, token="123abcppp")

然后访问url,可以看到返回的结果就会增加token

{
    "statusCode": 0,
    "message": "ok",
    "results": {
        "id": 4,
        "name": "test",
        "age": 18,
        "sex": 1
    },
    "token": "123abcppp"
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/164888.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 通信网络基础pdf_通信网络系统基础

    通信网络基础pdf_通信网络系统基础目录TCP通信概述服务端架构客户端架构应用层协议客户端连接服务端(错误示范)UDP通信概述程序结构通信数据处理TCP通信概述TCP通信双方在进行数据交换之前,先要建立连接,连接建立后,通信双方之间相当于有一条隧道,数据按顺序在该隧道中传输,数据传输完毕后,双方可以选择关闭隧道,连接结束。TCP通信编程中,“请求方”主动连接“被请求方”,该过…

  • 虚拟机vmware安装步骤(如何在虚拟机安装软件)

    作者:seriouszyx独立博客记录了日常学习总结代码均可在Github上找到(求Star)本文讲解如何在虚拟机上安装KaliLinux,希望对大家有所帮助。准备:一台电脑,VMware(VMware安装教程)一、下载系统镜像文件1.首先下载系统镜像,进入kali官网,在Downloads中选择DownloadKaliLinux,如下图所示。…

  • DOS的net命令详解

    DOS的net命令详解Net命令介绍Net命令是Windows操作系统中一个最重要的命令,它可以管理网络环境、服务、用户、登录等本地信息。前几个操作系统版本的Net命令会有些不同,但是后期操作系统中的Net命令的基本功能都相同。Net命令一般在DOS提示符下运行,即win+r,输入‘cmd’打开。所有的net命令均接受选项“yes”和“no”,也可缩写为“/y”和“/n”Net命令的使用帮助如图,直接输入“net/?”或者“net”即可返回net命令的具体语法。使用“nethelp命令名”还.

  • offsetWidth、clientWidth、width、scrollWidth区别及获取

    offsetWidth、clientWidth、width、scrollWidth区别及获取<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>offsetWidth、clientWidth、width、scrollWidth区别及获取</title><style

  • C51单片机实验——定时器实验

    C51单片机实验——定时器实验实验名称:单片机定时器实验实验环境:普中实验系统;KeilμVision4软件;实验目的:(1)掌握单片机定时器的原理和控制方法。(2)通过编程利用定时器实现定时功能,并利用该定时功能实现时钟分、秒的功能。硬件连线:P2^1口连接led1P2^3口连接led3P2^5口连接led5P2^7口连接led7实验主要代码:/********************************************************************************

  • html 修改下划线粗细,TextView设置内容下划线加粗等html样式实例及注意事项

    html 修改下划线粗细,TextView设置内容下划线加粗等html样式实例及注意事项TextView设置内容下划线加粗等html样式实例及注意事项效果图test01.pngJava代码packagecom.myapplication;importandroid.app.Activity;importandroid.os.Build;importandroid.os.Bundle;importandroid.text.Html;importandroid.text.Sp…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号