一:模板组成

  HTML代码 + 逻辑控制代码

  逻辑代码组成格式:

    使用大括号来引用变量, {{ var_name }}

二: Template和Context对象

  1. //进入该的django的项目环境
  2. >>>python3 manage.py shell
  3. >>>from django.template import Context, Template
  4. >>> t = Template('My name is {{ name }}.') //创建模板
  5. >>> c = Context({'name': 'Stephane'}) //创建上下文
  6. >>> t.render(c) //使用模板渲染上下文
  7.  
  8. //同一个模板,多个上下文,可以创建模板后,通过for循环渲染上下文
  9. t = Template('Hello, {{ name }}')
  10. for name in ('John', 'Julie', 'Pat'):
  11. print t.render(Context({'name': name}))

模板渲染上下文

三: 模板获取上下文变量的值

  1. //上下文传值
  2. def showTemplate(request):
  3. # value = 'NBA'
  4. # value = [1, 22, 333]
  5. # value = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
  6. # value = datetime.datetime.now()
  7.  
  8. class Person:
  9. def __init__(self,name,age):
  10. self.name = name
  11. self.age = age
  12.  
  13. value = Person('Jack', 18)
  14.  
  15. return render(request, 'template.html', {'value': value})
  16. # return render(request, 'template.html', locals())
  17.  
  18. //模板渲染
  19. <!DOCTYPE html>
  20. <html lang="en">
  21. <head>
  22. <meta charset="UTF-8">
  23. <title>Title</title>
  24. </head>
  25. <body>
  26.  
  27. //直接显示
  28. {#{{ value }}#}
  29.  
  30. //数组根据索引取值
  31. {#{{ value.0 }}#}
  32.  
  33. //字典根据键取值
  34. {#{{ value.key1 }}#}
  35.  
  36. //对象点调用获取属性
  37. {#{{ value.year }}#}
  38. {#{{ value.name }}#}
  39.  
  40. </body>
  41. </html>

 三: 过滤变量

  1. //字母大写, 'nba'-->'NBA'
  2. {{ value|upper }}
  3. //数字相加
  4. {{ value|add:2 }}
  5. //首字母大写
  6. {{ value|capfirst }}
  7. //删除指定字符串
  8. {{ value|cut:' ' }}
  9. //时间显示格式
  10. {{ value|date:'Y-m-d'}}
  11. //如果为空,默认显示
  12. {{ value|default:'null' }}
  13. //字符串大小,xxKB
  14. {{ value|filesizeformat }}
  15. //第一个字符
  16. {{ value|first }}
  17. //字符串长度
  18. {{ value|length }}
  19. //截取字符串,截取到倒数第二位
  20. {{ value|slice:'-1' }}
  21. //给变量中的引号加上斜线
  22. {{ value|addslashes }}
  23. //url转码
  24. {{ value|urlencode }}
  25.  
  26. //将字符串转为浏览器识别的HTML标签,两种方式都可以
  27. 1.{{ value|safe }}
  28.  
  29. 2. {% autoescape %}
  30. {{ value }}
  31. {% endautoescape %}

django模板语言和过滤的更多相关文章

  1. Django模板语言(常用语法规则)

    Django模板语言 The Django template language 模板中常用的语法规则 {最新版本的Django语法可能有改变,不支持的操作可能支持了.[HTML教程 - 基本元素/标签 ...

  2. Django模板语言,标签整理

    Django模板语言 标签 内置标签引用 1. autoescape 控制自动转义是否可用. 这种标签带有任何 on 或 off 作为参数的话,他将决定转义块内效果. 该标签会以一个endautoes ...

  3. Django模板语言 标签整理

    Django模板语言 标签 内置标签引用 1. autoescape 控制自动转义是否可用. 这种标签带有任何 on 或 off 作为参数的话,他将决定转义块内效果. 该标签会以一个endautoes ...

  4. Django模板语言初识

    一.Django框架简介 1.MVC框架 MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控 ...

  5. Django模板语言的复用

    一.include标签 由于在项目中,往往会出现多个页面拥有一个或几个相同的页面版块,或是一个页面多个页面版块是相同的,基于这个问题,我们可以采用模板语言复用include标签来帮我们解决,这样就避免 ...

  6. Django模板语言相关内容 Djan

    Django模板语言相关内容   Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {{  }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} ...

  7. Django——模板语言相关内容

    Django模板语言相关内容   Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {{  }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} ...

  8. Django 模板语言 路由 视图

    . 模板语言(字符串替换) . 母版和继承 . 什么时候用母版? html页面有重复的代码,把它们提取出来放到一个单独的html文件. (比如:导航条和左侧菜单) . 子页面如何使用母版? {% ex ...

  9. django模板语言的注释

    就像HTML或者Python,Django模板语言同样提供代码注释. 注释使用 {# #} : ? 1 {# This is a comment #} 注释的内容不会在模板渲染时输出. 用这种语法的注 ...

随机推荐

  1. NCB之taxonomy系列

    1.taxonomy之简介 生物分类学是研究生物系统的一种强有力的组织原则.遗传.共同遗传的同源性以及在确定功能时保护序列和结构,这些都是生物学的中心思想,直接关系到任何一组生物体的进化史.因此,分类 ...

  2. redis 启动

    C:\Users\Administrator>cd c:\ c:\>cd redis-2.6 c:\redis-2.6>redis-server.exe redis.conf 测试r ...

  3. 无线LoRa远传智能水表

    无线远传智能水表是一款基于瑞萨芯片的水表,该水表具有电子计数.无线远传功能.欠费关阀等功能,无线水表具有的功能如下:无线通信采用SX1278的LoRa进行点对点通信,SX1278模块在通信中启用CAD ...

  4. windows上java中文乱码-指定字符集 -Dfile.encoding=UTF-8

    jvm启动中增加参数: -Dfile.encoding=UTF-8 重启即可.

  5. 反转链表(python)

    题目描述 输入一个链表,反转链表后,输出新链表的表头. # -*- coding:utf-8 -*- # class ListNode: # def __init__(self, x): # self ...

  6. Linux下查看编辑二进制文件:hexedit神器

    1.如果没有hexedit安装hexedit:2.打开终端输入hexedit filename;3.打开即可用键盘输入字符,用方向键移动,ctrl+w保存,ctrl+x退出:4.详细用法 man he ...

  7. 数位dp poj1850

    题目链接:https://vjudge.net/problem/POJ-1850 这题我用的是数位dp,刚刚看了一下别人用排列组合,我脑子不行,想不出来. 在这题里面我把a看成1,其他的依次递增,如果 ...

  8. matlab基础绘图知识

    axis([xmin xmax ymin ymax])   %设置坐标轴的最小最大值 xlabel('string')                             %标记横坐标 ylabe ...

  9. FortiGate常用命令

    1.命令结构 config      Configure object.    对策略,对象等进行配置 get   Get dynamic and system information. 查看相关关对 ...

  10. Django创建模型,迁移数据

    1.在models.py文件中添加代码 class notice(models.Model): notice_title = models.CharField(max_length=255) noti ...