VSCode中无法调试Django项目应用视图的问题求助
Django视图断点无法触发的问题排查与解决
我用Django框架创建了一个包含多个API的应用,该应用已经添加到INSTALLED_APPS列表中。我可以通过调试manage.py成功启动服务器,但调用应用中的视图时,views.py里的断点始终无法触发。
我的launch JSON配置如下:
{ // 使用IntelliSense了解可用属性。 // 悬停查看现有属性的描述。 // 更多信息,请访问:https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "Python: Django", "type": "python", "request": "launch", "program": "${workspaceFolder}\\manage.py", "args": [ "runserver", "--noreload" ], "env": { "DJANGO_SETTINGS_MODULE": "django-sql-project.settings" }, "django": true, "justMyCode": true } ] }
我的VS Settings json配置如下:
{ "python.defaultInterpreterPath":"~//env//Scripts//python.exe", "python.terminal.activateEnvironment": true, "appService.zipIgnorePattern": [ "__pycache__{,/**}", "*.py[cod]", "*$py.class", ".Python{,/**}", "build{,/**}", "develop-eggs{,/**}", "dist{,/**}", "downloads{,/**}", "eggs{,/**}", ".eggs{,/**}", "lib{,/**}", "lib64{,/**}", "parts{,/**}", "sdist{,/**}", "var{,/**}", "wheels{,/**}", "share/python-wheels{,/**}", "*.egg-info{,/**}", ".installed.cfg", "*.egg", "MANIFEST", ".env{,/**}", ".venv{,/**}", "env{,/**}", "venv{,/**}", "ENV{,/**}", "env.bak{,/**}", "venv.bak{,/**}", ".vscode{,/**}" ] }
排查步骤与解决方法
1. 调整justMyCode配置
launch.json中justMyCode设为true时,调试器会忽略被识别为"非项目代码"的文件。如果你的视图代码被误判,断点就无法触发。将其改为false试试:
"justMyCode": false
2. 修正虚拟环境路径
VS Settings里的python.defaultInterpreterPath用了~//env//Scripts//python.exe,Windows环境下波浪号~可能无法正确解析为用户目录,建议替换为绝对路径,比如:
"python.defaultInterpreterPath": "C:\\Users\\你的用户名\\env\\Scripts\\python.exe"
确保路径和你实际使用的虚拟环境完全一致。
3. 验证路由配置正确性
确认项目根目录的urls.py已经引入了应用的路由:
# 项目根urls.py from django.urls import include, path urlpatterns = [ path('api/', include('你的应用名.urls')), ]
同时检查应用自身的urls.py是否正确将路由映射到对应的视图函数。
4. 清除缓存并重启调试
- 删除项目中所有
__pycache__文件夹 - 关闭VS Code后重新打开项目,再启动调试
- 确保启动时选择的是
Python: Django配置项
5. 检查断点位置
确保断点设置在视图函数内部的有效执行代码行上,不要设在空行、注释行或函数定义行。
内容的提问来源于stack exchange,提问作者DataWrangler1980
相关产品推荐
相关产品推荐

