如何在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