如何在Django应用中创建HTML文件模板
VS Code不识别HTML格式的修复方法
- 先确认文件后缀真实有效:如果你的系统开启了「隐藏已知文件类型扩展名」,新建的
index.html实际可能是index.html.txt,自然无法被识别为HTML文件。先在系统文件管理器中开启扩展名显示,确认文件后缀为.html再重新打开。 - 后缀正常仍识别错误的话,手动指定语言模式即可:打开目标文件后,点击VS Code窗口右下角的文件类型标识,在弹出的选择列表中选中「HTML」,可同时选择将该后缀与HTML语言模式永久绑定,后续打开同类文件不会再出现识别错误。
Django项目HTML模板的正确创建规范
你当前的目录结构不符合Django的模板查找规则,按以下步骤调整即可:
- 确认你存放业务代码的
app目录已经在项目配置文件settings.py的INSTALLED_APPS列表中完成注册,否则Django不会扫描该目录下的模板文件。 - 在
app目录下新建固定命名为templates的文件夹,Django默认会从所有已注册app的templates目录下检索模板文件,你直接在app下建challenges子文件夹的方式不会被框架识别为模板目录。 - 为了避免多app场景下同名模板冲突,需要在
templates目录下新建和当前app同名的子文件夹,再在该子文件夹下创建你需要的challenges业务目录,最后把index.html放到对应路径下。最终的模板文件完整路径为app/templates/app/challenges/index.html。 - 视图中调用模板时无需写
templates前缀,直接传入相对路径即可,示例写法:
from django.shortcuts import render def index_view(request): # 传入templates目录下的相对模板路径 return render(request, "app/challenges/index.html")
如果你需要把模板放到项目全局目录而非单个app下,可以在项目
settings.py的TEMPLATES配置项中,给DIRS列表添加全局模板目录的绝对路径即可。
内容的提问来源于stack exchange,提问作者Saman Ahmadi
相关产品推荐
相关产品推荐

