django中block extends include区别

转载自https://blog.csdn.net/theowl/article/details/48627863

block extends include三者的差别跟用法

一、block定义基础模板

在html内容中定义多个block块,block由子模板引用同名block块,来决定是否替换这些部分

{% block title %}一些内容,这里可不填{% endblock %}

{% block content %}一些内容,这里可不填{% endblock %}

{% block footer %}一些内容,这里可不填{% endblock %}

这里 title content footer 不是变量,名字自定义

block一般定义在base.html中  block是可以在那些继承base的html中添加内容的区

 

二、extends子模板的引用方式

{% extends "base.html" %}

{% block title %}The current time{% endblock %}

{% block content %}<p>It is now {{ current_date }}.</p>{% endblock %}

第一句是固定的格式,必须为模板中的第一个模板标记

extends的参数一般为字符串,也可为变量

可带路径,相对路径,以 TEMPLATE_DIRS 的模板目录 为基准

子模板决定替换的block块,无须关注其它部分,没有定义的块即不替换,直接使用父模板的block块 

三、引用上级代码块在其基础上进行一些修改 {{ block.super }}

{% block footer %}

{{ block.super }}

AAAAA

{% endblock %}

Django模板系统——模板包含另一模板 include

使用模板加载API机制之后,可用的包含其它模板标签

{% include 'nav.html' %}

{% include "nav.html" %}

可带路径,相对路径,以 TEMPLATE_DIRS 的模板目录 为基准

{% include 'includes/nav.html' %}

可使用变量名

{% include template_name %}

包含的变量都会统一处理,不区分是第几层模板

Django的{{ block.super }}模板标签

Django模板中{{ block.super }}这个标签非常有用,可以做到不仅仅是覆盖父模板,而是在父模板基础上追加内容。当然也可以覆盖。

这就给了我们灵活性:既可以完全重写,也可以复用父模板,也可以在复用的基础上扩展。
 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值