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

目前市面上有非常多的模板系统,其中最知名最好用的就是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 render

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

然后去urls.py中配置url

from django.urls import path
from . import views

urlpatterns = [
    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 = 18
    return 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等标签。

猜你喜欢

转载自blog.csdn.net/xujin0/article/details/83342635