Python Django中DEBUG=True和False的功能区别是什么?
在Django应用程序的settings.py文件中切换Python Django中DEBUG=True和False的功能区别是什么?,python,django,Python,Django,在Django应用程序的settings.py文件中切换DEBUG设置之间的功能差异到底是什么? 我首先假设DEBUG=True只是启用了Django的日志功能和用于错误报告的中间件,但是现在。 了解Django内部系统在两种布尔设置下如何不同地工作,有助于在处理难以调试的普通状态500错误时形成假设debug=True的主要优点之一是详细的错误页面。Django提供了出错原因的详细跟踪。这对调试非常有帮助。基本上,在调试模式下,django会记住它执行的每个SQL查询(这也使得它完全不适合生产
DEBUG
设置之间的功能差异到底是什么?
我首先假设DEBUG=True
只是启用了Django的日志功能和用于错误报告的中间件,但是现在。
了解Django内部系统在两种布尔设置下如何不同地工作,有助于在处理难以调试的普通状态500错误时形成假设debug=True的主要优点之一是详细的错误页面。Django提供了出错原因的详细跟踪。这对调试非常有帮助。基本上,在调试模式下,django会记住它执行的每个SQL查询(这也使得它完全不适合生产) 此外,如果DEBUG=True,则禁用主机验证。换句话说,如果DEBUG=False,则需要设置允许的\u主机 从Django 1.6.2开始,导入错误不一定在
DEBUG=True
中捕获,但肯定在DEBUG=False
简单示例:尝试将应用程序的settings.py
(import yourapp.settings
)导入其中一个视图,然后尝试引用一个不存在的变量:settings.var\u this\u not\u exist
。对于引用该不存在变量的任何视图,当DEBUG=False
时,这只会是一个问题(导致状态500错误)
DEBUG=False
,settings.py的ALLOWED\u HOSTS
将起作用,您应该仔细设置它
媒体
和静态
将不提供对DEBUG=False
的访问,您必须在webserver的帮助下提供它们,如Nginx
或Apache
在功能上,没有区别。但是,DEBUG定义了是否应该在浏览器级别向用户显示错误消息(DEBUG=True)v/s向管理员发送电子邮件(DEBUG=False,带有一些设置)。那么几十篇关于只使用
DEBUG=True
(例如:)的代码的帖子呢?当DEBUG=True
时,似乎会发生更多的错误,否则该设置不会中断代码的工作-只是以不同的方式报告错误。谢谢,这肯定是所有相关的,但我知道肯定会发生更多的错误,因为即使使用ALLOWED_HOSTS=['*]
我也会看到这500个错误。我认为,DEBUG=True
也会自动更正代码的某些方面(但这只是我的猜测,这就是为什么我首先提出这个问题的原因)