1、DTL的变量

  • 模板中可以包含变量,Django在渲染模板的时候,可以传递变量对应的值过去进行替换。DTL语言将两个大括号对里的内容当作变量名。
  • 变量的命名规范和Python非常类似,只能是阿拉伯数字和英文字符以及下划线的组合,不能出现标点符号等特殊字符。
  • 变量需要通过视图函数渲染,视图函数在使用render或者render_to_string的时候可以传递一个context的参数,这个参数是一个字典类型,以后在模板中的变量就从这个字典中的KEY读取值的。
#HTML中的代码:
<title>{{title}}</title>#views.py中的代码:def index(request):#处理数据content = {"title":"欢迎来到"}#渲染界面return render(request,"book/index.html",context=content)

如果渲染的数据的类型为:字典/元组/列表,在模板引擎中不支持通过[索引]的形式访问
只能通过 . 的形式访问,例如:变量.索引(而且还不支持负数)

2、DTL的标签

1)分支标签
  • 在DTL中,所有标签都需要用标签限定符{% %}进行包裹。所有的标签都需要有结束限定符来指定
'''if标签相当于python中的if语句,有elif 和else 相对应if标签可以使用==, !=, <, >, >=, in, not, is, is not等判断运算符
'''
(% if 'python' in book %)<div>开始学习Python</div>
{% else %}<div>开始学习吗?</div>
{% endif %}
2)遍历迭代标签
  • 可以遍历列表、元组、字符串、字典等一切可以遍历的对象
  • 其中遍历字典的时候,需要调用字典的 .items 方法

for… in…标签:

#遍历字典的地方少:
{% for key,value in data.items %}{{key}}:{{value}}
{% endfor %}#如果要反向遍历,那么在遍历的时候加上一个reversed
{% for obj in list reversed %}'''
在for循环中,DTL提供了一些变量可供使用。这些变量如下:forloop.counter----->当前循环的下标。以1作为起始值(编号时使用)forloop.counter0----->当前循环的下标。以0作为起始值forloop.revounter------> 当前循环的反向下标值。比如列表有5个元素,那么第一个遍历这个属性是等于5,第二次是4,以此类推。并且是以1作为最后一个元素的下标。forloop.revcounter0------>类似于上边这个,不同的是最后一个元素的下标从0开始forloop.first----->是否是第一次遍历。(第一个值)forloop.last-----> 是否是最后一次遍历。forloop.parentloop----->如果有多个循环嵌套,那么这个属性代表的是上一级的for循环
'''

for … in … empty 标签:

  • 这个标签使用方法同上,只不过在遍历的对象如果没有元素的情况下会执行empty中的内容
<ul>{% for athlete in athlete_list %}<li>{{athlete}}</li>{% empty %}<li>Sorry,no athletes in this.list</li>{% endfor %}
</ul>
3)URL解析标签(重点)
  • 类似于Django中的reverse一样,主要应用的元素就是a标签
  • 它的参数是通过空格来分隔的
<li><a href=" {% re_path '首页' %} ">首页</a></li>
<li><a href="{% re_path '事项' %}">事项</a></li>
4)转义标签
'''
[autoescape off/on]开启和关闭这个标签内的元素的自动转义功能。自动转移是可以将一些特殊字符。例如<转译成html语法能识别的字符,<就被转义成&lt;,而>会被自动转移成&gt;。模板默认是已经开启了自动转义的。
'''
{% autoescape on %}{{body}}
{% endautoescape %}

举例如下:

#views.py中代码:
def index(request):content = {"content":"<h1>数据库查询出来的代标签的内容</h1>"}return render(request,"book/index.html",context=content)#HTML中的内容
<div>{% autoescape off %}{{content}}{% endautoescape%}
</div>

运行结果如下:

Django模板语言DTL中的变量和标签相关推荐

  1. Djiango模板语言DTL

    一.变量 def dtl(request):num = 3.14ss = 'abc123嘿嘿'# return render(request, 'django_dtl.html', {'number' ...

  2. Django模板语言(译)

    原文地址:https://docs.djangoproject.com/zh-hans/2.1/ref/templates/language/ 翻译日期:2019年3月8日-2019年3月9日 by: ...

  3. Django模板语言相关内容

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

  4. 小白必看!Django 模板语言基础来啦

    作者 | 单雨 责编 | 胡巍巍 出品 | CSDN(ID:CSDNnews) 前言 为了实现模板封装和复用,提高HTML界面调试便捷性以及前后端解耦等目标,Django定义了自己的网络模板语言. 当 ...

  5. Django模板语言 以及使用

    Django 模板语言 文章目录 Django 模板语言 模板的传参 模板的变量 XSS攻击 反射型xss 存储型xss DOM xss 模板的标签 过滤器 模板的继承 url 反向解析 模板的传参 ...

  6. Java-POI替换Word模板文档中的变量,生成Word文档

    第一步:在项目中导入POI的jar包,以及相关的jar包. 所需的jar包列表: 下载地址:http://download.csdn.net/download/qq_34908167/10046670 ...

  7. Django模板语言中的自定义方法filter过滤器实现web网页的瀑布流

    模板语言自定义方法介绍 自定义方法注意事项 Django中有simple_tag 和 filter 两种自定义方法,之前也提到过,需要注意的是 扩展目录名称必须是templatetags templa ...

  8. Django模板语言

    常用语法 只需要记两种特殊符号: {{  }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} 变量名由字母数字和下划线组成. 点(.)在模板语言中有特殊的含义, ...

  9. Django(模板语言-自定义filter和simple_tag)

    filter过滤器的主要形式:变量|函数,意思是将变量交给函数处理,而自定义filter就是自己定义函数,因为用到已有的很少. 1.在当前app中创建templatetags模块(包:带__init_ ...

  10. 轻松搞定 Django 模板语言进阶!

    作者 | 单雨 责编 | 屠敏 出品 | CSDN(ID:CSDNnews) 模板继承 简介 模板继承允许你建立一个基本的"骨架"模板, 它包含了网站中所有常见的元素,并定义了可以 ...

最新文章

  1. Mysql学习总结(14)——Mysql主从复制配置
  2. java异常类子类和父类的关系
  3. arduino红外热释电传感器_压力传感器在汽车空调系统中的应用
  4. exp oracle所有数据库命令,oracle数据库exp命令
  5. JSDOM模型的样例
  6. 和ur的区别_UR机械臂simscape正逆解仿真
  7. 数据库连接池的选择及其开发配置
  8. 网络访问此计算机,从网络访问此计算机 - 安全策略设置
  9. 关于使用DFS,BFS的一些思考总结
  10. 计算机信息网络功能修改,IP地址自动修改的功能移植
  11. Android WebView性能分析与优化
  12. HTTP代理服务器的工作原理
  13. 如何写好一篇优秀的硕士毕业论文
  14. 移动端-安卓-接口测试简介
  15. 慧正工作流注册码获取
  16. windows下 lvgl+qt 虚拟环境搭建
  17. 受力分析软件_学了那么多力学,怎么还是不会做有限元分析?
  18. IDM 下载器 使用记录
  19. 【邀请函】2022中国开源年会如约而至,XuperChain三道关等你闯!
  20. html中div被挤下来,移动端布局,底部的div被挤下去,麻烦帮看看

热门文章

  1. NBA数据爬取及存取
  2. 吴裕雄--天生自然 诗经:琵琶行
  3. 劳动与社会保障法-作业
  4. ADODB.Stream 错误 '800a0bb9' 参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突
  5. win7怎么查看计算机主板,win7系统电脑查看主板型号的四种方法介绍
  6. 新型的Hbb项目目录结构
  7. 浅谈MMORPG服务器架构
  8. python泊松分布_Python数据可视化:泊松分布详解
  9. python爬虫:爬取链家深圳全部二手房的详细信息
  10. 关于4年工作经验的测试工程师的感想