08_模版嵌套

模版嵌套

1、常用的模板标签

我们前面写的前端页面,有很多代码都是重复的,所以我们要写个模板base.html,让网页来继承它。

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

blog_detail.html继承和引用模板文件

{% extends 'base.html' %}

{#页面标题#}
{% block title %}
    {{ blog.title }}
{% endblock %}

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


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_html:30 }}</p>
    {% empty %}
        <p>-- 暂无博客,敬请期待 --</p>
    {% endfor %}
    <p>一共有{{ blogs|length }}篇博客</p>
{% endblock %}

blogs_with_type.html继承和引用模板文件

{% extends 'base.html' %}

{#页面标题#}
{% block title %}
    {{ blog_type.type_name }}
{% endblock %}

{#页面内容#}
{% block content %}
    <h3>{{ blog_type.type_name }}</h3>
    {% for blog in blogs %}
        <a href="{% url 'blog_detail' blog.pk %}">
            <h3>{{ blog.title }}</h3>
        </a>
        <p>{{ blog.content|truncatechars_html:30 }}</p>
    {% empty %}
        <p>-- 暂无博客,敬请期待 --</p>
    {% endfor %}
    <p>一共有{{ blogs|length }}篇博客</p>
{% endblock %}

2、全局模板文件夹

新建templates文件夹,在settings.py中

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

3、模板文件设置建议

把html页面移进来

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值