我来自 php 背景,喜欢我可以在代码中的几乎任何地方执行 var_dump 并获得结果。
如果我使用 shell (./manage.py shell),似乎在 python/django 中我可以这样调试方法,但速度没有那么快。
在 PHP 中,您可能已经习惯了很棒的xdebug扩展。
在 Python 中,使用 (把它放在任何你放xdebug_break()的地方) 产生经典的调试器:
import pdb; pdb.set_trace()
我最喜欢的是 ipdb 模块 ( pip install ipdb
):
import ipdb; ipdb.set_trace()
您还可以使用提供命令的werkzeug ( pip install werkzeug
) 和django-extensions (pip install django-extensions
和 add django_extensions
to settings.INSTALLED_APPS
) runserver_plus
。
真的,真的很棒。这可能是让你再也不会回头看 php 的事情之一。无论如何,runserver_plus
就像runserver
但是它将用堆栈跟踪的每一帧都可用的 ajax 交互式 shell 替换默认的 django 堆栈跟踪页面。当然,您可以通过在代码中放置类似crash
或任何地方的内容来获取它。random_undefined_variable_name