django本来有是可以很方便自定义HTTP错误页面的,网上资料一大把。核心是在项目的urls代码中增加handler403的定义,比如:

handler403 = "app.views.your_custom_view"

404,500都是一样的,重新定义handler404和handler500就行了。

但是我发现加上rest_framework之后,handler404和handler500都没问题,就是handler403怎么都不行。后来看了rest_framework的文档,才明白,rest_framework文档写的很明白,它会拦截PermissionDenied异常,所以自定义的handler403是不会起作用的。

我后来找到一种方法,自己写一个middleware,拦截403错误。

1. 写一个自定义的的middlewares.py:

from django.shortcuts import render
from django.utils.deprecation import MiddlewareMixinclass CustomExceptionMiddleware(MiddlewareMixin):def process_response(self, request, response):if response.status_code == 500:error_message = f"error message: 500 server internal error"return render(request, 'error.html', {'error_message': error_message})elif response.status_code == 404:error_message = f"error message: 404 server internal error"return render(request, 'error.html', {'error_message': error_message})elif response.status_code == 403:error_message = f"error message: 403 server internal error"return render(request, 'error.html', {'error_message': error_message})else:return response

这里面对response进行拦截,如果status code是403则返回指定页面,否则返回原来的response

2. 修改项目的settings,把刚写的middleware加上去:

MIDDLEWARE = ['bid_request_system_app.commons.middlewares.CustomExceptionMiddleware'
]

就可以了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/910496.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/910496.shtml
英文地址,请注明出处:http://en.pswp.cn/news/910496.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kafka Streams架构深度解析:从并行处理到容错机制的全链路实践

在流处理技术领域,Kafka Streams以其轻量级架构与Kafka生态的深度整合能力脱颖而出。作为构建在Kafka生产者/消费者库之上的流处理框架,它通过利用Kafka原生的分区、副本与协调机制,实现了数据并行处理、分布式协调与容错能力的无缝集成。本文…

【嵌入式硬件实例】-555定时器控制舵机/伺服电机

555定时器控制舵机/伺服电机 文章目录 555定时器控制舵机/伺服电机1、555定时器介绍2、舵机/伺服电机介绍3、硬件准备与接线使用 555 定时器 IC 的伺服电机控制器和测试仪电路是一个简单的电路,可用于生成操作伺服电机所需的控制信号。该电路允许我们通过按下按钮手动驱动/控制…

国产麒麟 安装可视化数据库软件DBeaver(图解)

目录 ​​​​​​​​编辑DBeaver介绍 官网 通过强制使用 Ubuntu 模板来修复 add-apt-repository 重新添加 PPA 撤销更改(可选) 官网直接下载 DBeaver CE 下载好后安装软件 启动方式一 启动方式二 启动成功 在左侧右击新建连接 安装驱动 测…

线程池 JMM 内存模型

线程池 & JMM 内存模型 文章目录 线程池 & JMM 内存模型线程池线程池的创建ThreadPoolExecutor 七大参数饱和策略ExecutorService 提交线程任务对象执行的方法:ExecutorService 关闭线程池的方法:线程池最大线程数如何确定? volatile…

[论文阅读] 软件工程 + 教学 | 软件工程项目管理课程改革:从传统教学到以学生为中心的混合式学习实践

软件工程项目管理课程改革:从传统教学到以学生为中心的混合式学习实践 论文信息 arXiv:2506.14369 Agile and Student-Centred Teaching of Agile/Scrum Concepts Maria Spichkova Comments: Preprint. Accepted to the 29th International Conference on Knowledg…

Windows系统提示“mfc140u.dll丢失”?详细修复指南,一键恢复程序运行!

当你兴致勃勃地打开某个游戏或专业软件时,突然弹出一条错误提示——“MFC140u.dll丢失”,程序直接闪退,让人无比沮丧。别担心!这个问题并不复杂,通常只需重新安装运行库或修复系统文件即可解决。本文将为你提供详细的修…

云XR(AR/VR)算力底座关键特征与技术路径

云XR(AR/VR)算力底座是支撑扩展现实技术规模化落地的核心基础设施,当前发展呈现以下关键特征与技术路径: 一、算力架构:云边端协同异构融合 分布式部署模式‌ 云端‌:承担高复杂度渲染与大数据处理&#x…

Android开发常用adb合集

Android开发常用adb合集 Android开发常用adb合集crash日志导出 Android开发常用adb合集 crash日志导出 bugreport: adb bugreportdropbox: adb shell dumpsys dropbox --print > desktop/full_dropbox_logs.txt

LTspice仿真4——exp指数函数波形

参数设置 Vinitial:初始电压值 Vpulsed:脉冲达到值 Rise Delay:上升延迟时间 Rise Tau:上升指数系数tau Fall Delay:下降延迟时间 Fall Tau:下降指数系数tau tau决定指数波形下降或者上升快慢&#x…

[Java 基础]集合框架

在 Java 中,我们经常需要存储和操作一组数据,而集合框架就是为此而生。它提供了一套统一的接口和类,帮助我们高效地管理各种数据集合。 常用的集合框架中的类只有 ArrayList、LinkedList、HashSet、HashMap 这 4 个,这些类的继承…

SQL关键字三分钟入门:WITH —— 公用表表达式让复杂查询更清晰

在实际的数据库开发和分析中,我们常常会遇到复杂的多层嵌套查询,这样的 SQL 语句不仅难以阅读,也容易出错。 这时候就需要使用一个非常实用又优雅的关键字 —— WITH! 它可以帮助我们将复杂的子查询提取出来并命名,从…

要在 Linux 不联网服务器 上部署并运行 Gitee 上的 vue-vben-admin 项目,并且该项目使用的是 pnpm 管理依赖

目录 ✅ 目标:在不联网服务器中成功运行 vue-vben-admin 👉 你需要的最终环境: ✅ 场景:完全离线部署并运行开发/构建环境 🧱 步骤总览: 🛠 详细操作流程 ✅ 第 1 步:联网机器准…

中国风国潮通用PPT模版

中国风答辩总结汇报类通用PPT模版,古风PPT通用模版,国学精品PPT模版,中国风韵PPT模版 中国风国潮通用PPT模版:https://pan.quark.cn/s/59cea717fe8d

【nvidia-H100-ib排障实战2】:服务器 InfiniBand 网络性能问题深度分析

目录 InfiniBand 网络性能日志: 实际生产服务器 InfiniBand 网络性能问题深度分析 一、核心问题定位:mlx5_1 设备性能异常 二、问题详细分析 1. mlx5_1 设备异常原因推测 (1)硬件连接故障 (2)驱动或固件问题 (3)资源争用或配置错误 2. CPU 频率不一致问题 三…

Postgresql中不同数据类型的长度限制

目录 一、字符类型(Character Types) 二、二进制类型(Binary Types) 三、数值类型(Numeric Types) 四、其他类型 五、全局限制:单行数据总大小 示例对比表 注意事项 验证命令 在 Postgr…

Unity Hub 新建项目,启动 Unity 闪退的解决办法

问题: Win11: Unity 闪退,提示 Could not connect project 原因 这是 Firewall & network protection 在作怪,真的我感觉 Windows Defender 就从来没干过好事,那个遍地是病毒的年代微软你不搞个杀毒软件,现在…

学习打卡---回溯

回溯,所有回溯都可以转换成树形结构进行解决 我们将树形结构分为纵向和横向两个方面 递归是纵向循环,也就是纵向方面,到了叶子节点就收网回溯 循环是横向循环,也就是横向方面,到了数组末尾就结束 回溯属于是将二叉树的…

阿里云获取DASHSCOPE_API_KEY教程,以及配置DASHSCOPE_API_KEY环境变量

要获取阿里云的 DASHSCOPE_API_KEY(通义千问API密钥),需要在阿里云平台上完成开通服务和创建密钥的流程。以下是具体步骤: 1. 开通通义千问API服务 登录阿里云账号 访问 阿里云官网,使用账号密码或RAM用户登录。 进入…

《去哪儿网Redis高并发实战:从问题定位到架构升级》

去哪儿网Redis高并发实战:从问题定位到架构升级 在互联网行业竞争日益激烈的当下,高并发场景下的系统性能优化一直是技术团队面临的重要挑战。对于去哪儿网这类在线旅游平台来说,节假日期间的流量高峰更是对系统架构的严峻考验。本文将深入剖…

Zynq + FreeRTOS + YAFFS2 + SQLite3 集成指南

Zynq FreeRTOS YAFFS2 SQLite3 集成指南 一、系统架构设计 #mermaid-svg-qvuP6slyza89wsiT {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-qvuP6slyza89wsiT .error-icon{fill:#552222;}#mermaid-svg-qvuP6slyz…