VSCode需配置django-html语言模式、安装ms-python.django扩展、正确设置urls.py视图引用及launch.json的django模块调试。

VSCode 默认不支持 Django 模板语法高亮,也不识别 {% url %} 或 path() 中的视图引用——这不是插件没装对,而是语言模式、文件关联、项目结构三者没对齐。配错任意一环,跳转就失效,高亮就是白纸。
怎么让 .html 文件正确识别为 Django 模板?
VSCode 右下角显示“HTML”就说明模板语法被当普通 HTML 解析了,{% 和 {{ 自然不会高亮。它不会读你的 settings.py,也不会猜你是不是在写 Django。
- 点击右下角语言标识(如“HTML”),选 Configure File Association for '.html',输入
django-html(注意不是Django或HTML (Django Templates)) - 或者直接在工作区
.vscode/settings.json里加:"files.associations": {"*.html": "django-html"} - 必须已安装官方扩展
ms-python.django(ID 是batisteo.vscode-django),其他名字相似的扩展(比如 Sublime 风格的)VSCode 不认,会静默失败
{% url 'detail' %} 点不了?检查这三处硬性限制
VSCode 的路由跳转不是动态运行时解析,而是靠静态扫描 urls.py + 匹配函数签名。漏掉一个条件,跳转就断链。
提供使用 django-unfold (v0.56+) 构建高级 Django 管理界面的专业指导。当用户提及 django-unfold、unfold admin 等内容时使用此技能。
-
urls.py里不能用字符串路径引用视图,比如path('post/', 'blog.views.post_list')—— 必须改成函数引用:path('post/', views.post_list) -
views.py中的函数必须定义在模块顶层,不能包在if DEBUG:、def wrapper():或类方法里;CBV 类也得继承自django.views.generic.*下的标准基类(如DetailView) - 项目必须以文件夹形式打开,且
manage.py在根目录;扩展靠它定位settings.py和主urls.py,单文件打开或路径不对,整个扫描就停摆
调试和运行 runserver 总失败?launch.json 别写成普通 Python 配置
点绿色三角直接跑 manage.py 会报错,因为 VSCode 把它当脚本执行,跳过了 Django 的命令入口逻辑。
- 在
.vscode/launch.json中添加类型为python、module设为django的配置,不是pythonFile:
{
"name": "Django",
"type": "python",
"request": "launch",
"module": "django",
"args": ["runserver", "8000"],
"django": true
}
settings.json 中必须明确指定 python.django.managePyPath(如 "./manage.py")和 python.django.settingsModule(如 "myproject.settings",是模块路径,不是文件路径)venv 或 env 才靠谱)最容易被忽略的是:改完 urls.py 后不重启 VSCode 或不触发重载,扩展不会自动重新扫描路由定义;还有命名空间写错一个字符,比如 {% url 'blog:post_detail' %} 写成 'blogpost_detail',跳转就彻底消失——它不报错,只是沉默。










