您可以通过使用 Django 模板继承来做到这一点。您将创建一个“主页”模板,并使用它{% block content %}{% endblock %}
来定义博客文章的位置。在您将显示博客文章的模板(这是一个单独的 HTML 文件)中,您将放置{%extends "home.html"%}
和 相同的{% block content %}{% endblock %}
,在 内部{% block content %}{% endblock %}
,您将放置博客文章的 HTML 代码。
当 Django 加载主页时,它会查看您在其他模板中还有哪些名为“content”的块,并将加载其中的任何内容,在这种情况下,就是您的博客文章。
让我给你看一个小例子:
主页.html
<title>Home</title>
<head>
<style type="text/css">
.content-wrapper{
text-decoration:none;
border: 1px none;
height: 50%;
left: 0%;
position: relative;
top: 8%;
width: 100%;
height: 100%;
z-index: 0;
}
</style>
</head>
<body>
<div class="content-wrapper">
{% block content %}{% endblock %}
</div>
</body>
和 blog-posts.html
{%extends "home.html"%}
<head>PUT HERE ALL THE CSS STYLESHEETS YOU'LL BE USING AND PUT THEM ALSO IN HOME.HTML</head>
<body>
{%block content%}
HTML FOR YOUR BLOG POSTS
{%endblock%}
</body>
这样,您将不得不做单独的模板,但会做更少的代码。而且您必须将它们指向 urls.py,因为它们的行为几乎就像框架一样。
网址.py
urlpatterns = patterns('',
url(r'^blog-posts/','Mod031.views.blog-posts'),
url(r'^home/', 'Mod031.views.home', name='home'),
)
您还将有一个视图来加载您需要的每个模板
def home (request):
return render_to_response('home.html', context_instance=RequestContext(request))
def blog-posts(request):
return render_to_response('blog-posts.html', context_instance=RequestContext(request))
有关更多信息,请阅读文档:Django 模板语言