block extends include三者的差别跟用法

一、定义基础模板,在html内容中定义多个block块,block由子模板引用同名block块,来决定是否替换这些部分
{% block title %}一些内容,这里可不填{% endblock %}
{% block content %}一些内容,这里可不填{% endblock %}
{% block footer %}一些内容,这里可不填{% endblock %}

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

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

二、子模板的引用方式
{% 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 }}这个标签非常有用,可以做到不仅仅是覆盖父模板,而是在父模板基础上追加内容。当然也可以覆盖。

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

二 locals() 技巧

locals()返回一个包含当前作用域里面的所有变量和它们的值的字典

from django.shortcuts import render_to_response
import datetime
def current_datetime6(request):
    current_date = datetime.datetime.now()
    return render_to_response(‘current_datetime6.html‘, locals())

block extends include三者的差别跟用法

时间: 2024-10-11 14:05:56

block extends include三者的差别跟用法的相关文章

Java ArrayList、Vector和LinkedList等的差别与用法(转)

Java ArrayList.Vector和LinkedList等的差别与用法(转) ArrayList 和Vector是采取数组体式格式存储数据,此数组元素数大于实际存储的数据以便增长和插入元素,都容许直接序号索引元素,然则插入数据要设计到数组元素移动等内存操纵,所以索引数据快插入数据慢,Vector因为应用了synchronized办法(线程安然)所以机能上比ArrayList要差,LinkedList应用双向链表实现存储,按序号索引数据须要进行向前或向后遍历,然则插入数据时只须要记录本项的

malloc、calloc、realloc三者的差别

1.malloc 作用:分配内存块 原型:void *malloc(size_t size);size表示要分配的字节数 返回值:返回一个指向所分配空间的void指针,假设没有足够的内存可用,则返回NULL. 假设要返回一个指向特定类型的指针,则在返回值上用一个类型转换.比如: char* p; p=(char*)malloc(20); 假设size是0,则malloc在堆中分配一个长度为0的项,而且返回一个指向那项的有效指针.比如: int *p1=(int*)malloc(0) //ok,p

#include #import @class 的一些用法区别

从网上查了一些资料,整理了一下,发现很多都说的比较详尽,下面摘录自网络 说一下#import同class之间的区别 在ios中我们经常会在.h和.m中引入一些类啊等等一般用的是#import来进行声明,你们可能也见到在.h文件进用@class来声明的,那么#import和@class进行声明 到底有什么的区别呢? 1. import会包含这个类的所有信息,包括实体变量和方法,而@class只告诉编译器,声明的类的名称,至于这些类是如何定义的,暂时不用考虑,所以在头文件中如果用@class声明某个

&lt;%@page include%&gt;、&lt;%@include%&gt;、&lt;jsp:include&gt;三者之间的本质区别

<%@page include%>.<%@include%>.<jsp:include>三者之间的本质区别 先从它的几个内置对象说起. application和session比较简单,这里主要说明request和page的作用范围. application:全局作用范围,整个应用程序共享,就是在部署文件中的同一个webApp共享,生命周期为:应用程序启动到停止. session:会话作用域,当用户首次访问时,产生一个新的会话,以后服务器就可以记住这个会话状态.生命周期:

django模板语言中的extends,block和include

extends和block是一对 它们用于母版和子版的继承 在母版html中将一些需要替换的部分用{% block xxx %}...{% endblock %}括起来, 在子版html中,在第一行需要写上要继承的母版,{% extends '母版的相对路径' %}这样引入母版. include include用户公共模板的引入,当很多页面(不是所有)中都需要某段html语言时,引入公共模板是个好方法, 在当前的html中的某个你需要引入公共模板的地方使用{% include '公共模板的相对路

C语言中的break、continue和goto三者的区别与用法

本文转载:http://blog.chinaunix.net/uid-26715658-id-3254915.html break和continue的使用范围比较一致,两都可以用于循环,其中break还可以用于switch.功能上也有一定的相似性,break就相当于退学,continue则相当于跳级.对于break,程序究竟跳到哪儿比较好理解.但是continue究竟跳到哪儿去了,初学者可能有些疑惑,不妨就当它跳到了循环体最后一句语句的后面. 如果它们处在由多重循环和switch组成的圈圈里,那

[JSP]JSP中include指令和include动作的差别

include指令是编译阶段的指令,即include所包括的文件的内容是编译的时候插入到JSP文件里,JSP引擎在推断JSP页面未被改动,否则视为已被改动. 因为被包括的文件是在编译时才插入的.因此假设仅仅改动了include文件内容.而没有对JSP改动,得到的结构将不会改变,所以直接运行已经存在的字节码文件.而没有又一次编译.因此对不常常变化的内容,用include指令是合适的,假设须要的内容是常常变化的.则须要动作元素<jsp:include>.以下将具体区分他们之间的不同 1.inclu

整理IOS中Block用作属性、传值、回调用法

1.block用作属性 封装一段代码 在模型类中声明block属性 ,注意block的属性要使用copy否则会出问题 @property (copy, nonatomic) void (^actionBlock)(); @property (copy, nonatomic) void (^actionWithPapameterBlock)(int papameter); @property (copy,nonatomic) NSString *(^actionToReturnStirng)();

extends 与implements的区别和用法

1. 在类的声明中,通过关键字extends来创建一个类的子类.一个类通过关键字implements声明自己使用一个或者多个接口. extends 是继承某个类, 继承之后可以使用父类的方法, 也可以重写父类的方法; implements 是实现多个接口, 接口的方法一般为空的, 必须重写才能使用. 2.extends 是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承,JAVA中不支持多重继承,但是可以用接口 来实现,这样就要用到implements,继承只能