是否可以针对Django应用程序中的特定模块运行Python调试器,而无需运行Django Web服务器,然后在视图或模型中执行pdb?我在一个models.py文件中有一个MailManager类,它包含一些发送电子邮件的方法。我想调试其中一个方法,而不必运行Django服务器,然后GET / POST调用该方法的视图。我尝试做'pdb myapp / models.py',它似乎在我的模型文件中执行第一个命令(恰好是'import logging'),但如果我做'dir(MailManager)',pdb告诉我它是没有定义。是否可以按照我描述的方式调试此模型类中的方法“独立”?
答案 0 :(得分:0)
您可以使用python -m pdb module.py
调试任何Python模块。它将显示第一行,然后您可以按n
逐行执行该程序。
要执行Python语句,请使用p
或pp
命令,如下所示:p dir(MailManager)
。必须定义MailManager,这意味着必须执行它所定义的行。
您应该查看PDB的文档以获取更多提示。 https://docs.python.org/3/library/pdb.html
你可能想看看Django的测试工具, 其中包括为您伪造服务器的测试客户端。 https://docs.djangoproject.com/en/1.8/topics/testing/tools/