如何在Visual Studio代码中使用django shell调试django(逻辑)代码

时间:2019-04-23 18:37:12

标签: visual-studio-code django debugging

我正在使用Visual Studio Code开发包括自定义逻辑代码的django应用程序,我想在通过django shell进行交互时调试代码。是否可以,如果需要,需要什么调试设置?

2 个答案:

答案 0 :(得分:3)

你绝对可以在 Django Shell 中调试。 VSCode 中 Django 调试的典型 launch.json 配置已经使用 manage.py runserver --noreload 来启动开发服务器,因此您只需添加一个使用 manage.py shell 的附加调试配置,就像这样(可能需要根据您的项目结构进行调整):

{
    "name": "Django Shell",
    "type": "python",
    "request": "launch",
    "program": "${workspaceFolder}/manage.py",
    "args": [
        "shell"
    ]
}

VSCode 将在其内置终端中启动 Django shell。

(感谢 this related discussion about debugging management commands 在我寻找这个问题的答案时为我指明了正确的方向。)

答案 1 :(得分:0)

Shell是shell,而VSCode是VSCode。您无法从外壳调试代码。

当我需要调试自定义Django代码时,我将debug.py文件放在项目根目录(manage.py所在的位置)中,并手动加载Django项目,即模仿Django shell。

# Here you should use all the logic that you have 
# in manage.py before execute_from_command_line(sys.argv)
# Generally there is only settings module set up:
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')

# Initialize django application
import django
django.setup()

# Do what you want to debug and set breakpoints
from django.contrib.auth.models import User
User.objects.exists()

然后只需使用常规的Python: Current file调试选项运行该文件