所以,我开始学习在Python中编写代码,后来又开始学习Django。第一次是很难找到回溯,很难找出我做错了什么,语法错误在哪里。一段时间过去了,一段时间过去了,我想我在调试Django代码时有一个例程。由于这是在我早期的编程经验中完成的,所以我坐下来想知道我是如何做到这一点的,是否是无效的,是否可以更快地完成。我通常设法找到并纠正代码中的错误,但我想知道我是否应该做得更快?
我通常只使用Django在启用时提供的调试信息。当事情最终如我所想的那样结束时,我用语法错误破坏了代码流,并查看流中那个点的变量,找出代码在哪里做了一些我不想做的事情。
但这能改进吗?有没有一些好的工具或者更好的方法来调试Django代码?
我真的很喜欢Werkzeug的交互式调试器。它类似于Django的调试页面,只是在回溯的每个级别上都有一个交互式shell。如果您使用django-extensions,您将得到一个
runserver_plus
管理命令,该命令启动开发服务器,并在出现异常时为您提供Werkzeug的调试器。当然,您应该只在本地运行它,因为它赋予任何拥有浏览器的人在服务器上下文中执行任意python代码的权限。
有很多方法可以做到这一点,但最直接的方法是 使用Python debugger。只需在Django视图函数中添加以下行:
或者
如果尝试在浏览器中加载该页,浏览器将挂起,并提示您对实际执行的代码进行调试。
不过,还有其他选择(我不推荐):
但是对于所有类型的Python代码,都强烈建议使用Python调试器(pdb)。如果您已经进入pdb,那么还需要查看使用ipython进行调试的IPDB。
pdb的一些更有用的扩展是
pdb++,由Antash建议。
pudb,由PatDuJour建议。
Using the Python debugger in Django,由Seafangs建议。
模板标记的快速操作:
现在,在一个模板中,您可以执行
{{ template_var|pdb }}
,并进入一个pdb会话(假设您运行的是本地devel服务器),在该会话中,您可以检查element
的内容。当对象到达模板时,这是一种很好的查看对象发生了什么的方法。
相关问题 更多 >
编程相关推荐