zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    设置Edittext全键盘
    Math中和角度,弧长,tan等相关的算法
    Android:TabLayout的一些设置
    Android;设置TextView加粗 代码设置
    Android:关于Edittext的一些设置
    Android:View颤抖的动画效果代码
    Android:dialog去除边框的实现(自带Style的padding)
    Android:自定义Dialog大小,显示圆角
    Android:EventBus
    SAS宏系统选项SYMBOLGEN MCOMPILENOTE MPRINT<NEST> MLOGIC(NEST)
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2974764.html
Copyright © 2011-2022 走看看