Django模板系统(上)
Django模板系统(上)
一、什么是Django的模板系统
1、Template System(模板系统)是Django中的一系列流程的控制,它来实现页面与代码分离(数据展示与功能逻辑的分离)的状态,达到松散模式。
2、Templates(模板)是一个简单的文本文件,可以生成任意文本格式的如html/xml/csv等。我们可以在之前创建的mysite目录中创建一个templates文件夹进行后面的处理。
3、模板系统背后的哲学:
业务逻辑和表现逻辑相对分开,所以就不能在django模板中直接调用Python代码。
二、模板使用的流程
创建模板对象--->模板渲染--->
1、创建模板对象
使用Template类直接实例化,其中Template类来自django.template模块中
>>> from django.template import Template >>> t=Template( ' My name is {{name}} ' ) >>> print t ---------------------------output------------------------- <django.template.Template object at 0x0154541B4>
2、渲染模板
2.1:渲染操作流程
一旦创建Template对象之后,可以用context传递数据给它,它是一系列变量和它们值的集合,模板使用它来赋值模板变量标签和执行块标签
context在django里表现为Context类,在django.template模块中
Context类构造是一个可选参数:一个字典映射变量和它们的值
创建一系列Context对象之后,调用Template对象的render()方法并传递Context对象来填充模板
>>> from django,template import Template,Context >>>t=Template( " My name is {{name}},I love{{language}} " ) >>>c=Context({ ' name ' : ' BeginMan ' , ' language ' : ' Python/Js/C# ' }) >>> t.render(c) --------------------------------output---------------------------------------------- My name is BeginMan ,I love Python/Js/C #
2.2:同一模板,多个上下文(即:多个渲染)
>>> from django,template import Template,Context >>>t=Template( " My name is {{name}},I love{{language}} " ) >>>c1=Context({ ' name ' : ' BeginMan ' , ' language ' : ' Python/Js/C# ' }) >>> t.render(c) >>>c2=Context({ ' name ' : ' Jack ' , ' language ' : ' PHP ' }) >>> t.render(c2) >>>c3=Context({ ' name ' : ' Ben ' , ' language ' : ' java ' }) >>>t.render(c3)
改进:
>>>t=Template( ' My name is {{name}} ' ) >>> for name in ( ' BeginMan ' , ' Jack ' , ' Ben ' ): .... print t.render(Context({ ' name ' :name}))
3.模板变量的灵活多变
模板系统能够处理复杂的数据结构,如list、dictionary和自定义对象等。在Django模板中遍历复杂的数据结构的关键是句点符合(.), 可访问字典的键值、索引、对象的方法、下面让看看在模板变量中句点符合应用
3.1:访问字典键值
3.2:访问对象的属性
3.3:自定义类的应用
3.4:调用对象的方法
注意:在Django的模板系统中,应用于模板变量时,方法的调用不能带圆括号,也无法给方法传参数,即:你只能调用不带圆括号的无参的方法
3.5:访问列表序列
注意:不允许使用负数列表索引
4、处理无效的变量
默认情况下,如果一个模板变量不存在,则模板系统会把他展示为空字符串
三、小结
本节所学的知识点:1.对Django模板的认识、2.掌握了如何模板的基本使用、3.模板变量技巧性基础掌握
作者: BeginMan
出处: http://www.cnblogs.com/BeginMan/
提示: 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
分类: Django
作者: Leo_wl
出处: http://www.cnblogs.com/Leo_wl/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
版权信息