如何在Django中调试,好方法?

所以,我开始学习使用Python和后来的Django进行编码。 第一次很难看到回溯,并且真正弄清楚我做错了什么以及语法错误在哪里。 现在已经过去了一段时间,我想我在调试Django代码的过程中得到了一个例程。 由于这是在我的编码经验的早期完成的,我坐下来想知道我是如何做到这一点是无效的,可以做得更快。 我通常设法找到并纠正我代码中的错误,但是我想知道我是否应该更快地做到这一点?

我通常只使用Django启用时的调试信息。 当事情最终会按照我的想法结束时,我会用语法错误来分解代码流,然后查看流中当时的变量以找出代码执行的操作,而不是我想要的。

但是这可以改善吗? 有没有一些好的工具或更好的方法来调试你的Django代码?


有很多方法可以做到,但最简单的方法是简单地使用Python调试器。 只需将以下代码行添加到Django视图函数中即可:

import pdb; pdb.set_trace()

如果您尝试在浏览器中加载该页面,则浏览器将挂起,您将得到一个提示,以对实际执行的代码进行调试。

不过还有其他选择(我不推荐他们):

* return HttpResponse({variable to inspect})

* print {variable to inspect}

* raise Exception({variable to inspect})

但是Python调试器(pdb)强烈推荐用于所有类型的Python代码。 如果你已经到PDB,你想也想看看IPDB使用IPython中进行调试。

一些更有用的扩展名为pdb

pdb ++ ,由Antash建议。

PatDuJour建议的pudb。

Seafangs建议在Django中使用Python调试器


我非常喜欢Werkzeug的交互式调试器。 它类似于Django的调试页面,不同之处在于在追踪的每个级别上都有一个交互式shell。 如果你使用django-extensions,你会得到一个启动开发服务器的runserver_plus管理命令,并为你提供Werkzeug的异常调试器。

当然,你应该只在本地运行它,因为它可以让任何拥有浏览器的人在服务器上下文中执行任意python代码。


模板标签有点快捷:

@register.filter 
def pdb(element):
    import pdb; pdb.set_trace()
    return element

现在,在一个模板中,您可以{{ template_var|pdb }}并输入一个pdb会话(假设您正在运行本地开发服务器),您可以在其中检查element以查看您的内容。

这是一个非常好的方法,可以在您的对象到达模板时查看发生了什么。

链接地址: http://www.djcxy.com/p/31949.html

上一篇: How to debug in Django, the good way?

下一篇: Set Up A Scheduled Job?