Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在django模板中插入断点?_Python_Django_Django Templates - Fatal编程技术网

Python 如何在django模板中插入断点?

Python 如何在django模板中插入断点?,python,django,django-templates,Python,Django,Django Templates,如何在django模板中插入pdb.set_trace()?或者在模板内部运行其他调试。PyCharm专业版支持Django模板的图形调试。有关如何执行此操作的更多信息,请参见: PyCharm的调试器非常非常好。它几乎是可用的最好的Python IDE 免责声明:我是一个满意的客户,但没有其他既得利益。这里是我制作的一个小模板标签,允许您在模板中的任何给定点检查上下文: from django import template register = template.Library() @r

如何在django模板中插入
pdb.set_trace()
?或者在模板内部运行其他调试。

PyCharm专业版支持Django模板的图形调试。有关如何执行此操作的更多信息,请参见:

PyCharm的调试器非常非常好。它几乎是可用的最好的Python IDE


免责声明:我是一个满意的客户,但没有其他既得利益。

这里是我制作的一个小模板标签,允许您在模板中的任何给定点检查上下文:

from django import template
register = template.Library()

@register.simple_tag(takes_context=True)
def set_breakpoint(context):
    breakpoint()
将此代码保存在
[your_project]/[your_app]/templatetags/your_template_tag.py
中。(
templatetags
文件夹应与
[您的应用程序]
模板
文件夹位于同一目录下)

现在,重新启动服务器。(不要忘记这一部分!在重新启动服务器之前,模板标记不会加载!)

现在,您可以通过将以下代码放置在您希望调试器运行的模板中来调用模板标记:

{% load your_template_tag %}
{% set_breakpoint %}
瞧!Django的服务器现在将为您显示一个pdb shell,您可以在其中检查模板的整个上下文


显然,这仅用于开发。不要在生产环境中运行此方法,也不要在代码中留下断点。

您可以签出此方法并打印传递给模板的所有变量。我们有没有办法获得与常规python代码中的pdb.set_trace()相同的行为?