2009-11-23 247 views
2

我正在从命令行调试Django。我正在使用django_extensions,并且我安装了IPython,理想情况下,我希望能够尽可能多地提取shell中的信息。我将如何最有效地完成这项任务?从命令行调试Django

回答

2

正如Geo manage.py shell提到的那样好,但既然你已经安装了django_extensions,那么Carl的建议manage.py shell_plus甚至更​​好......节省了大量的打字工作。

但是,作为一个不太一般的第三个建议,你可能也想看看django-viewtools。我个人倾向于使用shell_plus,但这可能会有用。

+0

感谢您使用viewtools链接...我会很快检查出来的,最好的答案,尤其是你阅读我的问题后,谢谢。 – chiggsy 2009-11-25 07:54:01

1

如何:

python manage.py shell 

更多信息here

+0

是的,从文档中知道这个,我可能会使用shell_plus,因为我已经在使用django扩展了。 – chiggsy 2009-11-25 07:56:00

2

如果您已经安装django_extensions,使用

python manage.py shell_plus 

让所有的模型类的自动预加载。

+0

Shell_plus很棒,另外一定要结帐iPython它在使用shell时添加了很多有用的功能(比如以'漂亮'标签和可读方式打印字典而不是数据锁) - http://ipython.scipy.org/moin/ – 2009-11-24 16:27:26

1

我最喜欢调试django问题的方法是使用./manage runserver_plus命令到django_extensions。它使用Werkzeug debuger,它在Web浏览器中为您提供了一个python shell。如果你想在代码中的任何地方使用shell,只需输入一些伪造的python,就像简单的a一样,当代码执行时你会得到一个shell。

另一个不错的工具是ipdbipython调试器。它与pdb相同,但更好(并且使用ipython。有了这个和runserver_plus,你可以插入import ipdb; ipdb.set_trace(),并且你将在同一窗口中得到一个ipython shell,并且你有runserver_plus。 看看http://docs.python.org/library/pdb.html#debugger-commands您可以在调试器中使用的命令列表