首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

升级到Django 2.1 500后,不再发送错误消息

升级到Django 2.1后,当出现500错误时,不再发送错误消息给用户。这是因为Django 2.1引入了一个新的DEBUG_PROPAGATE_EXCEPTIONS设置,默认情况下设置为False。当DEBUG_PROPAGATE_EXCEPTIONS为False时,Django将不会将服务器错误消息发送给用户,而是显示一个通用的服务器错误页面。

这个改变的目的是为了提高安全性,避免将敏感的错误信息暴露给潜在的攻击者。然而,这也意味着在生产环境中,用户将无法直接看到详细的错误消息,而只能看到一个通用的错误页面。

要解决这个问题,可以通过以下几种方式之一:

  1. 查看服务器日志:在生产环境中,服务器通常会记录错误日志。通过查看服务器日志,可以获取详细的错误信息,以便进行故障排除和修复。
  2. 打开DEBUG模式:在开发环境中,可以将DEBUG设置为True,这样当出现500错误时,Django将会显示详细的错误消息。但是请注意,这样做会将敏感信息暴露给用户,因此不应在生产环境中使用。
  3. 自定义错误处理视图:可以创建一个自定义的错误处理视图,用于捕获并处理500错误。在这个视图中,可以记录错误日志,并向用户显示适当的错误信息。具体的实现方式可以参考Django的官方文档:https://docs.djangoproject.com/en/2.1/topics/http/views/#customizing-error-views

总结起来,升级到Django 2.1后,不再发送错误消息给用户。为了获取详细的错误信息,可以查看服务器日志或者在开发环境中打开DEBUG模式。在生产环境中,可以通过自定义错误处理视图来处理500错误,并向用户显示适当的错误信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

一个数据库事务 Bug 引发的惨剧

本文讲的是我不小心向几百位用户发送了付款到账的消息,实际上他们的钱还没到手的故事! 当你意识到自己犯了错误时是什么感觉 1故事 我们系统中有一个付款流程,是向商家和其他类型的用户付款用的。...信号发送,如果批量付款中后面的一次付款失败,付款操作还可以回滚。...系统处理了三个项目并发送了三个消息。...我们得晚一些发送消息:如果我们要等待,用户会在付款到账后几分钟甚至几小时才收到消息。在某些情况下这可能不是什么大问题,但很多时候,在事件发生短时间内发送消息可能是很重要的。...使用 Pytest 进行测试 不幸的是,我们不再直接使用 Django 的 TestCase 了,我们使用的是 pytest,而且我们没条件去重写内容。

94920

关于“Python”的核心知识点整理大全64

开发项目时,Django错误页面向你显示了重要的调试信息,如果将项目 部署到服务器依然保留这个设置,将给攻击者提供大量可供利用的信息。...下面来修改settings.py,以让我们能够在本地看到错误消息,但部署到服务器不显示任何 错误消息: settings.py --snip-- # Heroku设置 if os.getcwd...404错误通常意味着你的Django代码是正确 的,但请求的对象不存在。500错误通常意味着你编写的代码有问题,如views.py中的函数有问题。...注意 500错误页面不会显示任何有关当前用户的信息,因为发生服务器错误时,Django不会通 过响应发送任何上下文信息。 3....使用方法get_object_or_404() 现在,如果用户手工请求不存在的主题或条目,将导致500错误Django尝试渲染请求的页 面,但没有足够的信息来完成这项任务,进而引发500错误

9810
  • Django跨域】一篇文章彻底解决Django跨域问题!

    = True CORS_ALLOW_ALL_ORIGINS = True CORS_ALLOW_HEADERS = ('*') 配置完以上内容Django就可用跨域访问啦!...x-requested-with", ] 允许跨域访问Cookie # 改为True即为可跨域设置Cookie CORS_ALLOW_CREDENTIALS = True ​ # 这里有一个需要注意的点 # chrome升级到...,并将与第三方网站发起的 GET 请求一起发送。...Strict Cookies 只会在第一方上下文中发送,不会与第三方网站发起的请求一起发送。 None Cookie 将在所有上下文中发送,即允许跨站发送。...配置的介绍 Django版本高于2.1:直接设置即可 如果DJango版本低于2.1:需要下载 django-cookie-samesite 再设置 其他详细Cookie配置内容请参考官方文档:配置 |

    5.3K32

    django 1.8 官方文档翻译:6-6-5 错误报告

    报告邮件 服务器错误 DEBUG 为 False的时候,无论什么时候代码产生了未处理的异常,并且出现了服务器内部错误(HTTP状态码 500),Django 都会给ADMINS设置中的用户发送邮件。...注意 为了发送邮件,DJango需要一些设置来告诉它如何连接到邮件服务器。...另见 服务器错误邮件使用日志框架来发送,所以你可以通过 自定义你的日志配置自定义这一行为。 404错误 也可以配置Django发送关于死链的邮件(404”找不到页面”错误)。...如果符合这些条件,无论什么时候你的代码产生404错误,并且请求带有referer, Django 都会给MANAGERS中的用户发送邮件。...你可以通过调整IGNORABLE_404_URLS设置,告诉Django停止报告特定的404错误。它应该为一个元组,含有编译的正则表达式对象。

    84620

    DjangoRestFramework,restful规范、APIview、解析器组件、Postman等

    该方式中,通讯是由消息驱动,而不再是某个动作(方法调用)。这种 Web 服务也称为“面向消息的服务”。     网络应用程序,分为前端和后端两个部分。...2.RESTFUl API设计 2.1 使用协议       API与用户的通信协议,总是使用HTTPs协议。...PUT(UPDATE):在服务器更新资源(客户端提供改变的完整资源)。 PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性,更新部分资源的意思)。...410 Gone:所请求的资源已从这个地址转移,不再可用。 415 Unsupported Media Type:客户端要求的返回格式不支持。...500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。

    2.5K20

    Django 2.1.7 视图 - 自定义404错误500错误

    那么本篇章再看看如何自定义404错误500错误错误页。...参考文献 https://docs.djangoproject.com/zh-hans/2.1/ref/views/ 首先看看开启了调试模式的Django错误页 任意访问一个不存在的url路径,Django...而且使用内置的模板变量{{ request_path }}还可以设置查看这个访问的错误路径,如下: 页面访问如下: 那么其他500,503等错误页是不是也是一样的做法呢?当然是的。...自定义500页面 - 视图出错 当视图内的参数之类发生错误,访问则会提示如下: 下面也对这个500错误页面进行自定义,如下: 浏览器访问如下: 优化错误页面 上面的两个示例错误页面肯定是不好看的,当然要优化一下...,如下: 在这里要注意一下,关闭调试模式,默认static静态文件Django是不提供服务的,需要改变未非安全的启动方式才会提供,如下: python3 manage.py runserver --insecure

    2.1K20

    Django 2.1.7 视图 - 自定义404错误500错误

    那么本篇章再看看如何自定义404错误500错误错误页。...参考文献 https://docs.djangoproject.com/zh-hans/2.1/ref/views/ 首先看看开启了调试模式的Django错误页 任意访问一个不存在的url路径,Django...而且使用内置的模板变量{{ request_path }}还可以设置查看这个访问的错误路径,如下: 页面访问如下: 那么其他500,503等错误页是不是也是一样的做法呢?当然是的。...自定义500页面 - 视图出错 当视图内的参数之类发生错误,访问则会提示如下: 下面也对这个500错误页面进行自定义,如下: 浏览器访问如下: 优化错误页面 上面的两个示例错误页面肯定是不好看的,...当然要优化一下,如下: 在这里要注意一下,关闭调试模式,默认static静态文件Django是不提供服务的,需要改变未非安全的启动方式才会提供,如下: python3 manage.py runserver

    1K20

    DRF框架学习(一)

    目的:利用DRF框架快速的实现RestAPI接口的设计 2、web开发的两种模式 2.1前后端不分离 前后端不分离:前端看到的效果是由后端进行控制,由后端进行模板渲染,给客户端返回渲染之后完整的页面内容...2、请求URL地址时,采用不同的请求方式执行不同的操作(获取信息GET;新增POST;修改PUT;删除DELETE) path只是将更改的内容发送,put将更改所有的内容都发送过去。...返回完整的资源对象 DELETE /collection/resource:返回一个空文档 状态码 说明 200 获取或修改成功 201 新增成功 204 删除成功 404 资源不存在 400 客户端请求有误 500...服务器错误 5、响应数据的格式:json数据 域名、版本、错误处理、超媒体了解即可。...框架中的英文单词 Django中数据库的相关操作

    1.3K20

    斗转星移 | 三万字总结Kafka各个版本差异

    注意:升级协议版本并重新启动可以在升级代理随时进行。它不一定要立即。 升级到0.10.0.0可能会对性能产生影响 0.10.0中的消息格式包括新的时间戳字段,并使用压缩消息的相对偏移量。...这样,代理仍然可以使用零拷贝传输将数据发送给旧的消费者。消费者升级,可以在代理上将消息格式更改为0.10.0,并享受包含新时间戳和改进压缩的新消息格式。...这样,代理仍然可以使用零拷贝传输将数据发送给旧的消费者。消费者升级,可以在代理上将消息格式更改为0.10.0,并享受包含新时间戳和改进压缩的新消息格式。...这样,代理仍然可以使用零拷贝传输将数据发送给旧的消费者。消费者升级,可以在代理上将消息格式更改为0.10.0,并享受包含新时间戳和改进压缩的新消息格式。...注意:升级协议版本并重新启动可以在升级代理随时进行。它不一定要立即。 潜在的突破性变化为0.9.0.0 不再支持Java 1.6。 不再支持Scala 2.9。

    2.3K32

    Django日志logging设置

    在这里,我使用的django版本是2.1.7,那么下面我则打开 2.1 的版本进行查阅即可,如下: image-20200320115000317 https://docs.djangoproject.com...Loggers确定需要处理消息,会将其传递给 Handler。 Handlers 处理程序 Handlers是确定记录器中每个消息发生什么情况的引擎。...默认情况下,此配置仅将日志等级为INFO的日志向 console 控制台发送消息,其他级别或更高级别的消息则不发送至控制台。...'propagate': True, # 允许传播至上级记录器 }, # 定义命名为 django.request 的日志记录器,使用 main_admins 处理器,只处理邮件发送错误信息...另外,既然上面的日志配置提到需要在日志中发送错误信息至admin的邮箱,那么在Django项目中就需要在settings配置好邮件发送的相关配置了,如下: # 邮件配置 EMAIL_HOST = 'smtp.maildomain.com

    2.9K20

    django 1.8 官方文档翻译: 3-2-1 内建的视图

    错误视图 Django 原生自带几个默认视图用于处理HTTP 错误。若要使用你自定义的视图覆盖它们,请参见自定义错误视图。...关于404 视图需要注意的3点: 如果Django 在检测URLconf 中的每个正则表达式没有找到匹配的内容也将调用404 视图。...500 (server error) 视图 defaults.server_error(request, template_name=’500.html’) 类似地,在视图代码中出现运行时错误Django...如果一个视图导致异常,Django 默认情况下将调用django.views.defaults.server_error 视图,它产生一个非常简单的“Server Error” 消息或者渲染500.html...默认的500 视图不会传递变量给500.html 模板,且使用一个空Context 来渲染以减少再次出现错误的可能性。

    1.1K10

    Kafka2.6.0发布——性能大幅提升

    Kafka Streams支持更改时发出 新的metrics可提供更好的运营洞察力 配置为进行连接时,Kafka Connect可以自动创建Topic 改进了Kafka Connect中接收器连接器的错误报告选项...将inter.broker.protocol.version更改为最新版本,将无法降级到2.1之前的版本。 对于滚动升级: 在所有代理上更新server.properties并添加以下属性。...CURRENT_MESSAGE_FORMAT_VERSION是指当前使用的消息格式版本。如果以前覆盖了消息格式版本,则应保留其当前值。...代理开始使用最新的协议版本,将无法再将群集降级到较旧的版本。 如果您已按照上述说明覆盖了消息格式版本,则需要再次滚动重启以将其升级到最新版本。...请注意,不再维护的较旧的Scala客户端不支持0.11中引入的消息格式,为避免转换成本必须使用较新的Java客户端。

    1.3K20

    微信机器人-Python学习日志(1)

    众所周知,微信公众号很早就实现了根据关键字自动回复的功能,后台可以根据用户发送消息设置自动回复,甚至自动和用户聊得有来有去。但是我们自己用的微信号却没有这个功能。...原项目的地址是https://github.com/liuwons/wxBot ,我在原作者的基础上进行改进,改善了兼容性,修正了一些错误,并且添加了图形界面。...这次我打算不管Django,换一个角度切入。 项目的文件并不多,最重要的就是wxbot.py文件。fork下来,第一步当然是阅读代码。项目的规模不大,大概就一两千行代码的样子。...不仅如此,他们的库也不能完全兼容:某些库只能运行于Python2.7,这使得一些使用了2.7版本的库的项目根本就没法升级到3。...新版中字符串不再需要进行一些不必要的编码转换。 某些库的名字或是库中函数的用法有所变化。 其他暂未发现的坑。 项目相关的全套代码都更新在Github上,开源的,欢迎fork拍砖。

    2.1K80

    推荐一款Python应用错误追踪神器!

    它支持多种编程语言和框架,如 Python、JavaScript、Node.js、Django、Flask 等,帮助开发人员快速诊断和解决问题,以确保应用程序稳定运行。...3、集成多种框架: sentry-sdk 支持与 Django、Flask、FastAPI 等多种 Python 框架的集成,使得在这些框架中集成 Sentry 变得简单快捷。...4、除了异常,你还可以使用sentry_sdk.capture_message()函数来捕获并记录普通消息。这对于记录非错误事件(如用户操作或系统状态更改)非常有用。...您还可以手动捕获和发送异常或消息到Sentry,例如: from flask importFlask, abort @app.route('/') def index(): try: # 假设这里有一些可能引发异常的代码...Sentry abort(500)# 返回500错误响应 # 手动发送消息到Sentry sentry_sdk.capture_message("This is a test message

    19610

    如何从Django应用程序发送Web推送通知

    : pip install django-webpush 安装软件包,将其添加到settings.py文件中的应用程序列表中。...如果没有错误发生,视图将返回JSONResponse并且呈现200“成功”的状态和一个数据对象。如果KeyError发生,则视图将返回500“内部服务器错误”状态。...成功订阅用户,下一步是将订阅数据发送到服务器。数据将被发送django-webpush包提供的webpush/save_information端点。...src="{% static '/js/registerSw.js' %}"> 由于服务工作者尚不存在,如果您使应用程序继续运行或尝试再次启动它,您将看到错误消息...我们将创建一个服务工作者来监听push事件并在准备好显示消息。 因为我们希望服务工作者的范围是整个域,所以我们需要将其安装在应用程序的根目录中。您可以在本文中详细了解如何注册服务工作者的过程。

    9.8K115

    Django从1.8升级到2.0注意事项 转

    原文照搬: 由于Django的产品周期问题,我们决定将Django从当前开发的1.8版本升级到2.0版本,此新最版本已不再支持python2,所以开发语言也需要相应升级到3.6版本。...不再是默认选项,需要显性指定 # 表示外键关联到作者表,当作者表删除了该条数据,图书表中不删除,仅仅是把外键置空 author = models.ForeignKey(AuthModel, null...=True, blank=True, on_delete=models.SET_NULL) 3, reverse 在新版本django中,这些包不再归于core,而是属于django.urls包,需要更改...7, 从__unicode__到__str__ 新版本pythondjango的models定义需要从__unicode__变更到__str_ 8,dict的'has_key'方法弃用 新版python...中,orm多对多外健不再用=等赋值,改为set方法 new_list = [obj1, obj2, obj3] e.related_set = new_list ===》 e.related_set.set

    91710

    第 14 篇:交流的桥梁“评论功能”—— HelloDjango 系列教程

    这里我们使用 django 自带的 messages 应用来给用户发送评论成功或者失败的消息发送评论消息 django 默认已经为我们做好了 messages 的相关配置,直接用即可。...两个地方需要发送消息,第一个是当评论成功,即评论数据成功保存到数据库,因此在 comment 视图中加一句。...同样的,如果评论失败了,也发送一条消息: # 检查到数据不合法,我们渲染一个预览页面,用于展示表单的错误。...请修改表单中的错误重新提交。', extra_tags='danger') 发送消息被缓存在 cookie 中,然后我们在模板中获取显示即可。...会通过全局上下文自动把 messages 变量传给模板,这个变量里存储我们发送消息内容,然后就是循环显示消息了。

    1.7K20

    零基础使用Django2.0.1打造在线教育网站(二十四):全局页面配置

    ,首页的开发以及404和500页面的配置等功能,下面我们依次介绍一下。...小喇叭消息已读配置 前面我们只是在各个页面显示了未读消息,但是当我们读了这些信息以后,我们的未读消息是不是需要清空呢?接下来就是完善这个功能。...[1240] 404和500页面的配置 老规矩,从前端资料里面拷贝我们的404和500页面到templates文件夹并修改文件里面的静态文件地址。...所以我们开始一般都会选择True,便于错误信息的显示。...500的页面的配置和这个一模一样(注意函数名为page_error),这里就不再赘述了。 至此,本篇关于全局页面配置的介绍就到此为止了,感谢你的赏阅。

    81330
    领券