我非常喜欢Python,因为我可以使用它的shell来探索事物。
在开发django应用程序时是否可以这样做?
我的意思是,是否可以这样做:
def process_request(request):
...
if(request.FILES != none):
__builtins__.debug_request = request
showPythonShell();
...
所以我可以试验一下这个请求吗?
谢谢:D
答案 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。