【Django2.0教程】09.模版嵌套

本文介绍了如何在Django2.0中利用模板进行页面的复用和嵌套,通过创建base.html作为基础模板,应用于blog_list.html、blog_detail.html和blogs_with_type.html等页面。此外,还讲解了如何调整base.html的位置,将其移动到mysite/templates目录下,并更新settings.py配置。同时,视图函数中需修改返回的HTML路径,添加前缀'blog/'以便正确引用模板。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、一个网站有很多相似的网页,这样就可以建立一个base.html在templates文件夹下

<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <title>{% block title %}{% endblock %}</title>
</head>
<body>
    <div>
       <a href="{% url 'home' %}">
         <h2>个人博客网站</h2>
     </a>

    </div>
    <hr>
    {% block content %}{% endblock %}


</body>
</html>
2、有了这个base.html,其他三个模板就可以嵌套进来

blog_list.html

{% extends 'base.html' %}
{# 页面标题 #}
{% block title %}
    我的博客网站
{% endblock %}
{# 页面内容 #}
{% block content %}
     {% for blog in blogs %}
        <a href="{% url 'blog_detail' blog.pk %}">
            <h3>{{ blog.title }}</h3>
        </a>

        <p>{{ blog.content|truncatechars:20 }}</p>
    {% empty %}
        <p>---暂无博客,敬请期待---</p>
    {% endfor %}
    <p>一共有{{ blogs|length }} 篇博客</p>
{% endblock %}

 

blog_detail.html

{% extends 'base.html' %}
{# 页面标题 #}
{% block title %}
    {{ blog.title }}
{% endblock %}
{# 页面内容 #}
{% block content %}
    <h3>{{ blog.title }}</h3>
    <p>作者:{{ blog.author }}</p>
    <p>发表日期:{{ blog.created_time|date:"Y-m-d"}}</p>
    <p>分类:
        <a href="{% url 'blogs_with_type' blog.blog_type.pk %}">
            {{ blog.blog_type }}
        </a>
    </p>
    <p>{{ blog.content }}</p>
{% endblock %}

blogs_with_type.html

{% extends 'base.html' %}
{# 页面标题 #}
{% block title %}
    {{ blog_type.type_name }}
{% endblock %}
{# 页面内容 #}
{% block content %}
     <h2>{{ blog_type.type_name }}</h2>
    {% for blog in blogs %}
        <a href="{% url 'blog_detail' blog.pk %}">
            <h3>{{ blog.title }}</h3>
        </a>

        <p>{{ blog.content|truncatechars:20 }}</p>
    {% empty %}
        <p>---暂无博客,敬请期待---</p>
    {% endfor %}
    <p>一共有{{ blogs|length }} 篇博客</p>
{% endblock %}

 

3、base.html位置的更换

在mysite文件夹力新建templates文件夹,并且在settings.py中更改

'DIRS': [os.path.join(BASE_DIR,'templates')],

然后将blog/templates里面额base.html剪切到mysite/templates文件夹中。并在mysite/templates中新建blog,把blog/templates里的其他几个html也剪切到这里来,然后修改views.py中每个视图的返回值中的html名称 ,在每个前面加上blog/,这样就可以访问啦!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值