Django views.py向HTML模板传值无法正常渲染显示问题
Django 模板传值不渲染故障排查
所有视图传递到模板的变量均无法正常解析、仅显示静态文本,属于全局配置类问题,按以下顺序逐一排查即可:
- 检查项目
settings.py中的模板配置项
重点确认TEMPLATES配置块里的两个参数:一是BACKEND必须为Django自带模板引擎django.template.backends.django.DjangoTemplates;二是APP_DIRS必须设为True,否则Django不会自动检索各应用目录下的templates文件,也不会正常执行模板渲染逻辑。标准配置参考:TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [BASE_DIR / 'templates'], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ] - 检查访问方式是否正确
必须先在项目目录执行python manage.py runserver启动Django本地开发服务,通过http://127.0.0.1:8000/对应路由的HTTP地址访问页面,不能直接双击本地HTML文件用file://协议打开——后者不会经过Django模板引擎处理,变量自然不会被解析。 - 检查应用注册状态
打开settings.py的INSTALLED_APPS列表,确认你自己开发的单词计数应用已经添加到列表中,未注册的应用Django无法正常加载其视图、模板资源。 - 检查模板文件格式
确认所有模板文件后缀为.html,不要存为.txt或其他格式,否则Django不会按模板规则解析文件内容。
额外提示:你当前写的
counter视图存在逻辑漏洞,直接用request.GET['text']获取参数时,若访问路由不带text参数会直接抛出KeyError报错,建议改成words = request.GET.get('text', ''),未获取到参数时默认赋值为空字符串,避免页面崩溃。
内容的提问来源于stack exchange,提问作者Ecry AMV
相关产品推荐
相关产品推荐

