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:访问字典键值

1

3.2:访问对象的属性

1

3.3:自定义类的应用 
1

3.4:调用对象的方法

1

注意:在Django的模板系统中,应用于模板变量时,方法的调用不能带圆括号,也无法给方法传参数,即:你只能调用不带圆括号的无参的方法

3.5:访问列表序列

1

注意:不允许使用负数列表索引

4、处理无效的变量

默认情况下,如果一个模板变量不存在,则模板系统会把他展示为空字符串

三、小结

本节所学的知识点:1.对Django模板的认识、2.掌握了如何模板的基本使用、3.模板变量技巧性基础掌握

作者:BeginMan
提示:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
邀请:学习、交流可加IT新人群qq群:38695886
 
分类: Django
原文地址:https://www.cnblogs.com/Leo_wl/p/2974764.html