django drf 统一Response格式
场景
需要将响应体按照格式规范返回给前端。
例如:
响应体中包含以下字段:
{"result": true,"data": {},"code": 200,"message": "ok","request_id": "20cadfe4-51cd-42f6-af81-016639232a66"
}
具体代码
工具类:
import loggingfrom rest_framework import status
from rest_framework.response import Responsefrom django_middleware_global_request import get_requestlogger = logging.getLogger("app")class ResponseMixin:def finalize_response(self, request, response, *args, **kwargs):"""异常处理函数,搭配custom_exception_handler进行处理:param request::param response::param args::param kwargs::return:"""global_request = get_request()current_reqeust_id = getattr(global_request, "current_request_id", None)if not getattr(request, "_wrapper_response", True):if isinstance(response, Response) and isinstance(response.data, dict):response.data["request_id"] = current_reqeust_idreturn super().finalize_response(request, response, *args, **kwargs)if isinstance(response, Response):if not response.exception:response.data = {"result": True,"data": response.data,"code": 200,"message": "ok","request_id": current_reqeust_id,}else:response.data = {"result": False,"data": response.data,"code": response.status_code,"message": str(response.data),"error": str(response.data),"request_id": current_reqeust_id,}response.status_code = status.HTTP_200_OKresponse.is_log_resp = Truereturn super().finalize_response(request, response, *args, **kwargs)
视图类中使用:
from common.drf.mixins import ResponseMixin
from rest_framework.viewsets import GenericViewSet, ModelViewSetclass TestViewSet(ResponseMixin, # 继承工具类ModelViewSet): # 必须继承viewset, GenericViewSet和ModelViewSet都可queryset = models.TestModel.objects.all()serializer_class = serializers.TestSerializer
注意:
视图类必须继承viewset,无论是GenericViewSet和ModelViewSet都可以
相关文章:
django drf 统一Response格式
场景 需要将响应体按照格式规范返回给前端。 例如: 响应体中包含以下字段: {"result": true,"data": {},"code": 200,"message": "ok","request_id": "20cadfe4-51cd-42f6-af81-0…...
SM2协同签名算法中随机数K的随机性对算法安全的影响
前面介绍过若持有私钥d的用户两次SM2签名过程中随机数k相同,在对手获得两次签名结果Sig1和Sig2的情况下,可破解私钥d。 具体见SM2签名算法中随机数K的随机性对算法安全的影响_sm2关闭随机数-CSDN博客 另关于SM2协同签名过程,具体见SM2协同签…...
解决setMouseTracking(true)后还是无法触发mouseMoveEvent的问题
如图,在给整体界面设置鼠标追踪且给ui界面的子控件也设置了鼠标追踪后,运行后的界面仍然有些地方移动鼠标无法触发 mouseMoveEvent函数,这就令人头痛。。。 我的解决方法是:重载event函数: 完美解决。。。...
基于深度学习的花卉智能分类识别系统
温馨提示:文末有 CSDN 平台官方提供的学长 QQ 名片 :) 1. 项目简介 传统的花卉分类方法通常依赖于专家的知识和经验,这种方法不仅耗时耗力,而且容易受到主观因素的影响。本系统利用 TensorFlow、Keras 等深度学习框架构建卷积神经网络&#…...
Springboot集成MongoDb快速入门
1. 什么是MongoDB 1.1. 基本概念 MongoDB是一个基于分布式文件存储 [1] 的数据库。由C语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数…...
DERT目标检测—End-to-End Object Detection with Transformers
DERT:使用Transformer的端到端目标检测 论文题目:End-to-End Object Detection with Transformers 官方代码:https://github.com/facebookresearch/detr 论文题目中包括的一个创新点End to End(端到端的方法)简单的理解就是没有使…...
软件后端开发速度慢的科技公司老板有没有思考如何破局
最近接到两个科技公司咨询,说是他们公司后端开发速度太慢,前端程序员老等着,后端程序员拖了项目进度。 这种问题不只他们公司,在软件外包公司中,有一部分项目甲方客户要得急,以至于要求软件开发要快&#…...
开放原子超级链内核XuperCore可搭建区块链
区块链是一种分布式数据库技术,它以块的形式存储数据,并使用密码学方法保证数据的安全性和完整性。 每个块包含一定数量的交易信息,并通过加密链接到前一个块,形成一个不断增长的链条。 这种设计使得数据在网络中无法被篡改,因为任何尝试修改一个块的数据都会破坏整个链的…...
【Qualcomm】高通SNPE框架的使用 | 原始模型转换为量化的DLC文件 | 在Android的CPU端运行模型
目录 ① 激活snpe环境 ② 设置环境变量 ③ 模型转换 ④ run on Android 首先,默认SNPE工具已经下载并且Setup相关工作均已完成。同时,拥有原始模型文件,本文使用的模型文件为SNPE 框架示例的inception_v3_2016_08_28_frozen.pb文件。imag…...
C++map与set
文章目录 前言一、map和set基础知识二、set与map使用示例1.set去重操作2.map字典统计 总结 前言 本章主要介绍map和set的基本知识与用法。 一、map和set基础知识 map与set属于STL的一部分,他们底层都是是同红黑树来实现的。 ①set常见用途是去重 ,set不…...
随手记:前端一些定位bug的方法
有时候接到bug很烦躁,不管是任何环境的bug,看到都影响心情,随后记总结一下查看bug的思路,在摸不着头脑的时候或者焦虑的时候,可以静下心来顺着思路思考和排查bug可能产生的原因 1.接到bug,最重要的是&am…...
【深度学习】03-神经网络2-1损失函数
在神经网络中,不同任务类型(如多分类、二分类、回归)需要使用不同的损失函数来衡量模型预测和真实值之间的差异。选择合适的损失函数对于模型的性能至关重要。 这里的是API 的注意⚠️,但是在真实的公式中,目标值一定是…...
Python爬虫APP程序:构建智能化数据抓取工具
在信息爆炸的时代,数据的价值日益凸显。Python作为一种强大的编程语言,与其丰富的库一起,为爬虫程序的开发提供了得天独厚的优势。本文将探讨如何使用Python构建一个爬虫APP程序,以及其背后的思维逻辑。 什么是Python爬虫APP程序&…...
第五部分:2---中断与信号
目录 操作系统如何得知哪个外部资源就绪? 什么是中断机制? CPU引脚和中断号的关系: 中断向量表: 信号和中断的关系: 操作系统如何得知哪个外部资源就绪? 操作系统并不会主动轮询所有外设来查看哪些资源…...
梧桐数据库(WuTongDB):SQL Server Query Optimizer 简介
SQL Server Query Optimizer 是 SQL Server 数据库引擎的核心组件之一,负责生成查询执行计划,以优化 SQL 查询的执行性能。它的目标是根据查询的逻辑结构和底层数据的统计信息,选择出最优的查询执行方案。SQL Server Query Optimizer 采用基于…...
Scrapy框架介绍
一、什么是Scrapy 是一款快速而强大的web爬虫框架,基于Twusted的异步处理框架 Twisted是事件驱动的 Scrapy是由Python实现的爬虫框架 ① 架构清晰 ②可扩展性强 ③可以灵活完成需求 二、核心组件 Scrapy Engine(引擎):Scrapy框架…...
Facebook对现代社交互动的影响
自2004年成立以来,Facebook已经成为全球最大的社交媒体平台之一,改变了人们的交流方式和社交互动模式。作为一个数字平台,Facebook不仅为用户提供了分享生活点滴的空间,也深刻影响了现代社交互动的各个方面。本文将探讨Facebook如…...
Java项目运维有哪些内容?
Java项目运维的内容主要包括环境准备、部署Java应用、配置和优化、安全配置、以及数据安全保护措施,服务的运行和资源动态监控管理。 1,环境准备:这包括选择适合运行Java和Tomcat的操作系统,如Ubuntu、CentOS等Linux发行版…...
【学习笔记】MIPI
MIPI介绍 MIPI是由ARM、Nokia、ST、IT等公司成立的一个联盟,旨在把手机内部的接口如存储接口,显示接口,射频/基带接口等标准化,减少兼容性问题并简化设计。 MIPI联盟通过不同的工作组,分别定义一系列手机内部的接口标…...
QMake 脚本知识点记录
1. 简单工程配置 QT core guigreaterThan(QT_MAJOR_VERSION, 4): QT widgetsCONFIG c11CONFIG debug # debug/release HEADERS demo.h # 头文件 列表 SOURCES main.cpp demo.cpp # 源文件 列表 FORMS mainwin.ui # 窗体 列表…...
**发散创新:基于Python的鲁棒水印技术实战解析与代码实现**在多
发散创新:基于Python的鲁棒水印技术实战解析与代码实现 在多媒体内容日益泛滥的今天,数字水印技术已成为版权保护、防伪溯源和内容认证的核心手段之一。本文将深入探讨一种基于离散余弦变换(DCT)的鲁棒图像水印嵌入与提取算法&…...
VBA Collection vs Dictionary:如何根据项目需求选择最佳数据容器?
VBA Collection与Dictionary深度对比:如何为项目选择最优数据容器? 在VBA开发中,数据容器的选择往往决定了代码的执行效率和可维护性。Collection和Dictionary作为两种最常用的数据结构,各自拥有独特的优势和应用场景。本文将深入…...
【PyCon官方认证异步实践标准】:基于aiohttp+uvloop+trio的工业级异步架构设计(含GitHub千星项目源码解析)
第一章:Python异步I/O的核心范式与演进脉络Python异步I/O并非一蹴而就的产物,而是从回调驱动、协程模拟,到原生语法支持的渐进式演进结果。其核心范式始终围绕“单线程并发执行I/O密集型任务”这一目标展开——通过事件循环调度可暂停/恢复的…...
Windows下OpenClaw全流程指南:ollama GLM-4-7-Flash接入与技能扩展
Windows下OpenClaw全流程指南:ollama GLM-4-7-Flash接入与技能扩展 1. 为什么选择OpenClawGLM-4-7-Flash组合 去年我在处理日常办公自动化时,发现很多重复性工作既耗时又容易出错。尝试过各种RPA工具后,最终被OpenClaw的"AI智能体本地…...
面向高精度应用的数字控制PDH稳频电路设计与实现
1. 数字控制PDH稳频电路的核心价值 在原子钟、引力波探测这类需要亚赫兹级别频率稳定度的尖端实验中,激光稳频技术就像精密机械中的轴承——看似不起眼却决定着整个系统的性能上限。传统模拟PDH(Pound-Drever-Hall)电路虽然能提供MHz量级的反…...
突破原厂限制:用开源相机工具解锁Sony相机7大隐藏功能
突破原厂限制:用开源相机工具解锁Sony相机7大隐藏功能 【免费下载链接】Sony-PMCA-RE Reverse Engineering Sony Digital Cameras 项目地址: https://gitcode.com/gh_mirrors/so/Sony-PMCA-RE 作为一名摄影爱好者,我一直梦想能充分掌控我的Sony相…...
如何快速上手MOOTDX:Python量化分析者的通达信数据完整实战手册
如何快速上手MOOTDX:Python量化分析者的通达信数据完整实战手册 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx MOOTDX是一个专门为Python开发者设计的通达信数据接口封装库࿰…...
【声纳与人工智能融合——从理论前沿到自主系统实战】第五章 声纳波形设计与主动感知智能优化
目录 第五章 声纳波形设计与主动感知智能优化 5.1 智能波形设计理论与方法 5.1.1 信息论指导下的波形优化 5.1.1.1 最大化互信息准则的波形设计 5.1.2 深度强化学习在波形设计中的应用 5.1.2.1 状态空间、动作空间与奖励函数设计 5.1.2.2 动态环境下波形序列的自适应生成…...
Python工业网关通信异常?97%的调试失败源于这4个隐蔽配置陷阱(附实时诊断脚本)
第一章:Python工业网关通信异常的典型现象与诊断范式工业现场中,基于Python构建的边缘网关常因协议适配、资源约束或环境干扰出现通信异常。典型现象包括:Modbus TCP连接频繁超时、MQTT订阅后无消息到达、OPC UA会话意外中断、串口数据乱码或…...
Ice终极指南:3步打造Mac菜单栏的清爽工作空间
Ice终极指南:3步打造Mac菜单栏的清爽工作空间 【免费下载链接】Ice Powerful menu bar manager for macOS 项目地址: https://gitcode.com/GitHub_Trending/ice/Ice Ice是一款专为macOS设计的强大菜单栏管理器,能够帮助用户有效整理和优化混乱的菜…...
