我可以使用showPythonShell进行Django调试吗?

时间:2012-06-22 06:35:18

标签: python django debugging

我非常喜欢Python,因为我可以使用它的shell来探索事物。

在开发django应用程序时是否可以这样做?

我的意思是,是否可以这样做:

def process_request(request):
    ...
    if(request.FILES != none):
        __builtins__.debug_request = request
        showPythonShell();
    ...

所以我可以试验一下这个请求吗?

谢谢:D

2 个答案:

答案 0 :(得分:3)

这可以使用python调试器完成:pdb

甚至更好ipdb,它为您提供标签完成语法高亮显示和其他IPython功能。

if(request.FILES != none):
    import ipdb; ipdb.set_trace()

一旦到达该行,您将被删除到调试shell,您可以在其中检查请求。检查所有available commands的pdb文档。

这是一篇非常好的博客文章,解释了所有细节:http://aymanh.com/python-debugging-techniques

答案 1 :(得分:3)

安装ipython并将showPythonShell()替换为:

from IPython import embed; embed();

这将完全符合您的期望,即从您的if语句中启动ipython shell。拥有ipython shell的好处是标签完成,魔术功能等,如评论here。我已经在python中开发了很长一段时间了,这主要是我用来调试任何东西的方法,包括django。