0

我来自 php 背景,喜欢我可以在代码中的几乎任何地方执行 var_dump 并获得结果。

如果我使用 shell (./manage.py shell),似乎在 python/django 中我可以这样调试方法,但速度没有那么快。

4

2 回答 2

3

在 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_extensionsto settings.INSTALLED_APPS) runserver_plus

真的,真的很棒。这可能是让你再也不会回头看 php 的事情之一。无论如何,runserver_plus就像runserver但是它将用堆栈跟踪的每一帧都可用的 ajax 交互式 shell 替换默认的 django 堆栈跟踪页面。当然,您可以通过在代码中放置类似crash或任何地方的内容来获取它。random_undefined_variable_name

于 2013-02-12T20:53:06.907 回答
1

Python 通过名为pdb的调试器有一个很棒的步骤。如果您使用内置的网络服务器在前台运行 Django 进行开发,您可以在代码中抛出语句,例如

import pdb; pdb.set_trace()

和其他 pdb 命令,它会将您置于调试器中。还有一个django 插件

于 2013-02-12T20:53:35.523 回答