什么是Django的TEMPLATE_DEBUG设置?

Ale*_*lla 14 django debugging django-templates

我一直试图找到有关此设置的信息,但没有太多.有人可以解释一下这个设置是什么吗?我应该在生产中把它关闭吗?...只是想了解它,也许我在django中遗漏了一些重要的东西.

(我用django 1.6)

ale*_*cxe 20

此设置有助于调试渲染模板时引发的错误/异常.

如果它被设置为TrueDEBUGTrue,Django的会告诉你一个回溯,请求的详细信息和其他重要信息,而通常的"花哨"的错误页面的亮点在哪条线路的错误发生.

如果它被设置为FalseDEBUG,True并且在渲染模板时出现错误,您仍然会看到Django的错误页面,但它会错过包含发生错误的模板代码的块.因此调试起来会更困难.

确保值与之TEMPLATE_DEBUG相同是一种很好的做法DEBUG(尽管如果DEBUGFalse,则不会显示错误页面):

DEBUG = TEMPLATE_DEBUG = True   # development
DEBUG = TEMPLATE_DEBUG = False  # production
Run Code Online (Sandbox Code Playgroud)

文档参考.


例.

想象一下,我们在模板中有错误,忘了在now模板标签中提供日期格式:

<div>
    <span class="date">
        {% now %}
    </span>
</div>
Run Code Online (Sandbox Code Playgroud)

DEBUG设置为True.

如果TEMPLATE_DEBUG=TrueDjango的花哨错误页面将包含以下块:

在此输入图像描述

如果TEMPLATE_DEBUG=False,此块将不可见.

希望有所帮助.

  • 在Django 1.8中不推荐使用`TEMPLATE_DEBUG`设置.这里描述了新的方法:http://stackoverflow.com/a/32446043/2319697 (9认同)