我正在使用Visual Studio Code开发包括自定义逻辑代码的django应用程序,我想在通过django shell进行交互时调试代码。是否可以,如果需要,需要什么调试设置?
答案 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
调试选项运行该文件