目前市面上有非常多的模板系统,其中最知名最好用的就是DTL和Jinja2。

DTL是Django Template Language三个单词的缩写,也就是Django自带的模板语言。当然也可以配置Django支持Jinja2等其他模板引擎,但是作为Django内置的模板语言,DTL能和Django达到无缝衔接而不会产生一些不兼容的情况。因此使用Django一般都使用DTL模板系统。

DTL与普通的HTML文件的区别:

DTL模板是一种带有特殊语法的HTML文件,这个HTML文件可以被Django编译,可以传递参数进去,实现数据动态化。在编译完成后,生成一个普通的HTML文件,然后发送给客户端。

模板变量的使用

首先新建一个项目,因为是学习DTL语言,就不用新建一个app了,直接在和settings.py同级目录下新建一个views.py的文件。

  1. 如果是用pycharm创建的项目,那么在app的同级目录下Django就自动给我们创建好了一个templates的目录。并且在settings.py中也将模板路径配置好了的
  2. 如果时用命令窗口新建的项目,则需要手动在app的同级目录下创建一个templates的文件夹。并且需要去settings.py中配置好templates模板的路径。在settings.py中TEMPLATES这个列表中的字典中key为 ‘DIRS’ 中添加路径。
'DIRS': [os.path.join(BASE_DIR, 'templates')]

注意: 示例代码是将配置的模板路径是在和app的同级目录下,如果新建在其他位置,请自行修改配置路径。

然后在templates文件夹中新建一个 'index.html’的文件
这样我们需要用到的文件都创建好了。

首先进入views.py文件中编写代码:

from django.shortcuts import renderdef index(request):str = '我是变量'return render(request,'index.html',{'str':str})

然后去urls.py中配置url

from django.urls import path
from . import viewsurlpatterns = [path('',views.index),
]

然后切换至templates中的index.html文件中

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>DTL 语言</title>
</head>
<body>{{ str }}</body>
</html>

然后运行项目,就可以查看效果了。
只需要修改views.py文件中index函数中的str的值,我们就能改变传递到index.html中的值。

{% if %}标签的使用

我们在views.py中的index函数中新建一个变量age
并且将它传递至index.html中

def index(request):str = '我是变量'age = 18return render(request,'index.html',{'str':str,'age':age})

然后我们在index.html中使用{% if %}标签进行判断。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>DTL 语言</title>
</head>
<body>{{ str }}{% if age < 18 %}<p>你还没有成年</p>
{% elif age == 18 %}<p>你刚刚成年</p>
{% else %}<p>你已经成年了</p>
{% endif %}</body>
</html>

然后运行项目,输入网址,就能够查看效果了,可以改变age的值来改变index.html中显示的文字。
注意:

  1. 所有的标签都是在{%%}之间。
  2. if标签有闭合标签。就是{% endif %}
  3. if标签的判断运算符,就跟python中的判断运算符是一样的。==、!=、<、<=、>、>=、in、not in、is、is not这些都可以使用。
  4. 还可以使用elif以及else等标签。

DTL语言学习(一)模板变量和{% if %}标签的使用相关推荐

  1. Lawliet|C语言学习笔记2——变量/数据类型/表达式

    C语言学习笔记2--认识C语言1 1.变量 a.变量的命名 <类型名称><变量名称> 存放数据的一个地方,用于参与后续的运算. 变量命名的规则:只能由字母.数字和下划线组成,且 ...

  2. C语言学习教程:变量与常量数据分享

    在程序的世界中,可以让计算机按照指令做很多事情,如进行数值计算.图像显示.语音对话.视频播放.天文计算.发送邮件.游戏绘图以及任何我们可以想象到的事情.要完成这些任务,程序需要使用数据,即承载信息的数 ...

  3. c程序语言设定定义域,4.22C语言学习日记:变量的定义域及编译预处理

    学习笔记: 变量的存储类型: 静态存储方式:在程序运行期间由系统分配固定存储空间:从程序开始执行到程序结束: 动态存储方式:根据需要进行动态的分配存储空间:从包含该变量定义的函数开始执行至函数执行结束 ...

  4. C语言学习C程序设计——变量(详解)

    文章目录 前言 一.变量的概念 1.变量的概念 2.变量概念理解 二.定义变量 1.如何定义变量 2.定义变量时需要注意的细节 三.使用变量 1.变量初始化 2.给变量赋值 总结 前言 在上一篇文章中 ...

  5. (二)易语言学习笔记之变量与常量

    1 数据类型 (1)易语言数据类型 (2)数据类型应用 数据类型可以用来描述不同变量的类型或组件属性的类型. a 定义变量的数据类型 在声明一个变量时要定义其具体的数据类型,只需要在新建的变量的类型栏 ...

  6. django 学习 (三) 模板变量

    将views.py中的变量传递给html模板来显示,变量是以字典的形式传递给html模板文件显示的. 模板文件里以字典的{{健名}}来得到健值. 可传递的变量有以下几种形式 1. 基本变量 retur ...

  7. Go语言学习十二 变量和常量

    本文最初发表在我的个人博客,查看原文,获得更好的阅读体验 Go 使用var关键字声明变量:使用关键字const声明常量.变量可以像常量一样初始化. 一 变量 1.1 变量声明 语法: var 变量名 ...

  8. C语言学习之取变量后几位小数

    C语言 设变量x为float型且已经赋值, 则以下语句中能够将x中的数值保留到小数点后面2位, 并将第3位四舍五入 x=(int)(x*100+0.5)/100.0

  9. Django框架学习 —9模板详解 -- DTL

    作为Web框架,Django提供了模板,用于编写html代码,还可以嵌入模板代码更快更方便的完成页面开发,再通过在视图中渲染模板,将生成最终的html字符串返回给客户端浏览器 模板致力于表达外观,而不 ...

  10. Python语言学习:在python中,如何获取变量的本身字符串名字而非其值/内容及其应用(在代码中如何查找同值的所有变量名)

    Python语言学习:在python中,如何获取变量的本身字符串名字而非其值/内容及其应用(在代码中如何查找同值的所有变量名) 目录

最新文章

  1. 怎么进u8系统服务器网址,服务器地址变更后如何进入u8
  2. C++回声服务器_3-UDP版本
  3. cwRsync 同步时报错 STATUS_ACCESS_VIOLATION
  4. DynamicMethodHelper R2 2012-08-14 DynamicMethod ILGenerator.Emit
  5. Java基础学习-Collection体系结构和迭代测试
  6. 设计模式学习-Composite(组合模式)
  7. dataframe 删除首尾空格_你敲空格的速度很快,但女人的手不是用来敲空格的!...
  8. Filecoin网络目前总质押量约为4018万枚FIL
  9. 论文Mathtype公式自动编号
  10. 注意,更改团队所属业务部门用Update消息无效!
  11. 计算机哪个按键可以和弦,多指和弦常用键盘位置及指法
  12. 读凯文·米特尼克的黑客传奇经历
  13. excel表格横向纵向变换_Excel 的初级逻辑
  14. 计算机基础--练习题
  15. OPENFILER构建软iSCSI multipath实现多路径聚合(一)
  16. 金融结构的经济学分析
  17. 塔望 - 食品品牌咨询 食品品牌全案策划服务公司
  18. Web入门_朽木|学习笔记之第一章-数据库基本知识(1.1-1.7)
  19. Java的native方法是什么
  20. Web前端布局实战:三国杀页面布局(上)

热门文章

  1. 关于淘客软件的那些事儿
  2. 隐藏OEM分区的解决办法和推荐的清理磁盘的方法
  3. Windows AppLocker被绕过:攻击者可不提权联网注入DLL
  4. matlab做瀑布图,Matlab画瀑布图,福利叶变换,频谱图代码
  5. springboot easypoi excel导出功能
  6. android room 简书,android Room库使用问题
  7. 如何将class文件转换成java文件
  8. 【自学Android开发(一)】
  9. PHP数据加密的几种方式
  10. matlab解非齐次矩阵方程组,matlab-线性代数 非齐次方程组 基础解系和通解