Django模板中{%block%}标签未渲染,原因是直接以file://协议打开HTML文件,没有经过Django服务器处理,模板引擎未被激活。正确做法:视图函数调用render()渲染模板,配置URL路由并包含应用路由,启动runserver通过HTTP地址访问,即可正确解析模板语法。
视图函数必须调用render()
render()是Django将上下文数据注入模板、执行模板引擎解析的核心函数,这一点必须保证。在views.py中,应如下编写:
# views.py
from django.shortcuts import render
def frontpage(request):
return render(request, 'core/frontpage.html') # 确保触发模板渲染
URL路由必须正确指向该视图
在对应应用的urls.py中正确定义路径,并确保已包含进主路由:
长期稳定更新的攒劲资源: >>>点此立即查看<<<
# core/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('frontpage/', views.frontpage, name='frontpage'), # 注意末尾斜杠
]
然后在项目主urls.py中包含该应用路由:
# myproject/urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('core.urls')), # 包含core应用路由
]
启动Django开发服务器,通过HTTP地址访问
终端执行:
python manage.py runserver
然后在浏览器中访问:http://127.0.0.1:8000/frontpage/,而不是直接打开文件。
检查模板继承结构是否完整
虽然这不会直接导致显示原始代码,但结构不完整会导致页面空白或布局异常。建议补全基础结构:
{% block title %}{% endblock %}Djangochat
Djangochat
{% block content %}默认内容可选{% endblock %}
{% extends 'core/base.html' %}
{% block title %}Welcome | {% endblock %}
{% block content %}
Welcome to the Front Page!
This content is rendered inside the base layout.
{% endblock %}
只要严格遵循这个链路,Django模板语法就会被正确解析,{% block %}、{% if %}、{{ variable }}等标签都会生效,不再出现显示原始代码的问题。
侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述