2

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

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

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

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

所以我可以试验这个请求?

感谢:D

4

2 回答 2

3

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

甚至更好ipdb,它为您提供制表符补全语法高亮和其他IPython功能。

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

一旦到达该行,您就会被放到一个调试 shell 中,您可以在其中检查请求。检查 pdb 文档以获取所有可用的命令

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

于 2012-06-22T07:02:02.343 回答
3

安装ipython并替换showPythonShell()为:

from IPython import embed; embed();

这将完全符合您的预期,即ipython从您的 if 语句中启动一个 shell。拥有ipythonshell 的好处是 tab 补全、魔术功能等,正如这里所评论的那样。我已经在 python 中开发了很长一段时间,这主要是我用来调试任何东西的方法,包括 django。

于 2012-06-22T07:02:34.963 回答