在Django中,可以使用include标签来包含视图模板的骨干子视图。以下是解决方法的代码示例:
首先,创建一个名为base.html的骨干模板,它将包含所有视图模板共有的部分:
My Website
Welcome to My Website
{% block content %}
{% endblock %}
接下来,创建一个名为home.html的视图模板,它将包含主页的内容:
{% extends 'base.html' %}
{% block content %}
Welcome to the Home Page
This is the content of the home page.
{% endblock %}
然后,创建一个名为about.html的视图模板,它将包含关于页面的内容:
{% extends 'base.html' %}
{% block content %}
About Us
This is the content of the about page.
{% endblock %}
最后,创建一个名为contact.html的视图模板,它将包含联系页面的内容:
{% extends 'base.html' %}
{% block content %}
Contact Us
This is the content of the contact page.
{% endblock %}
在你的urls.py文件中,将这些视图模板与URL路径关联起来:
# urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.home, name='home'),
path('about/', views.about, name='about'),
path('contact/', views.contact, name='contact'),
]
最后,编写与视图模板关联的视图函数:
# views.py
from django.shortcuts import render
def home(request):
return render(request, 'home.html')
def about(request):
return render(request, 'about.html')
def contact(request):
return render(request, 'contact.html')
现在,当用户访问主页、关于页面或联系页面时,Django将使用骨干模板(base.html)作为页面的基础模板,并包含相应的视图模板(home.html、about.html或contact.html)的内容。
上一篇:包含实体排序