Django模板语言(一)

首先创建一个模板文件夹

Django模板语言(一)

其次配置模板文件夹路径

'DIRS': [os.path.join(BASE_DIR, 'templates')]

# djangoProject/hello_django/hello_django/settings.py


TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

视图文件中编写函数视图

# djangoProject/hello_django/hello_apps/views.py

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

html文件引用接口返回值

# djangoProject/hello_django/templates/variable.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试页面显示</title>
</head>
<body>
<h1>{{ var }}</h1>
</body>
</html>

urls文件中配置访问路径

# djangoProject/hello_django/hello_django/urls.py

urlpatterns = [
    path('variable/', views.variable),
]

访问页面

Django模板语言(一)

 

变量

  • {{ var }} 引用变量
def variable(request):
    var = '我是变量'
    return render(request, 'variable.html', {'var': var})
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试页面显示</title>
</head>
<body>
<h1>{{ var }}</h1>
</body>
</html>
  • {{ var.0 }} 列表取值
def variable(request):
    var = ['我是列表']
    return render(request, 'variable.html', {'var': var})
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试页面显示</title>
</head>
<body>
<h1>{{ var.0 }}</h1>
</body>
</html>

 利用下标取值,需要注意的是这边是 “ . ” 取值,取整个列表就直接 var 即可;元祖取值和列表一样。

  • {{ var.var }} 字典取值
def variable(request):
    var = {'var': '我是字典'}
    return render(request, 'variable.html', {'var': var})
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试页面显示</title>
</head>
<body>
<h1>{{ var.var }}</h1>
</body>
</html>

标签

  • 列表循环:{% for x in xx %}......{% endfor %}
def variable(request):
    var = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    return render(request, 'variable.html', {'var': var})
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试页面显示</title>
</head>
<body>
{% for i in var %}
    {{ i }}
{% endfor %}
</body>
</html>
  • 字典循环:{% for x in xx.items %}......{% endfor %}
def variable_dict(request):
    var_dict = {'var1': 1, 'var2': 2, 'var3': 3, 'var4': 4}
    return render(request, 'variableCopy.html', {'var_dict': var_dict})
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试页面显示</title>
</head>
<body>
<h1>
{% for k, y in var_dict.items %}
		<ul>字典key:{{ k }};字典value:{{ y }}</ul>
{% endfor %}
</h1>
</body>
</html>

模板中也可以像python的字典那样 var_dict.values,var_dict.key,var_dict.items 去循环取值 。

  • {{ forloop }} 获取循环的序号
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试页面显示</title>
</head>
<body>
<h1>
{% for i in var %}
    {{ forloop.counter }}       顺序获取循环序号
    {{ forloop.counter0 }}      顺序获取循环序号,从0开始计算
    {{ forloop.revcounter }}    倒叙获取循环序号
    {{ forloop.revcounter0 }}   倒叙获取循环序号,结尾从0开始计算
    {{ forloop.first }}         第一条数据返回True, 其他为False       
    {{ forloop.last }}          最后一条数据返回Ture, 其他为False 
{% endfor %}
</h1>
</body>
</html>
  • {% if 条件 %}......{% else %}......{% endif %}
def variable(request):
    var = random.sample([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 2)
    return render(request, 'variable.html', {'var': var})
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试页面显示</title>
</head>
<body>
<h1>
{% if var.0 == 1 %}
		NO.1 
{% else %} 
		NO.0 
{% endif %}
</h1>
</body>
</html>
  • {% if 条件 %}......{% elif %}......{% else %}......{% endif %}
def variable(request):
    var = random.sample([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 2)
    return render(request, 'variable.html', {'var': var})
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试页面显示</title>
</head>
<body>
<h1>
{% if var.0 == 1 %} 
		NO.1 
{% elif var.1 == 2 %} 
		NO.2 
{% elif var.2 == 3 %} 
 		No.3 
{% else %}
		NO.4
{% endif %}
</h1>
</body>
</html>
  • {% empty %} 判断为空
def variable(request):
    var = []
    return render(request, 'variable.html', {'var': var})
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试页面显示</title>
</head>
<body>
<h1>
{% for i in var %}
    {{ i }}
{% empty %}
    NULL~~~~
{% endfor %}
</h1>
</body>
</html>

过滤器

default

如果一个变量为 false 或空,使用给定的默认值。否则,使用变量的值。例如:

def variable(request):
    var = False
    return render(request, 'variable.html', {'var': var})
{{ var|default:"我是默认值" }}

Django模板语言(一)

length

返回值的长度。这对字符串和列表都有效。例如:

def variable(request):
    var = []
    return render(request, 'variable.html', {'var': var})
{{ var|length }}

Django模板语言(一)

filesizeformat

文件大小格式化为该值(即 '20 KB''4.1 MB''102 bytes' 等)。例如:

def variable(request):
    var = 2048
    return render(request, 'variable.html', {'var': var})
{{ var|filesizeformat }}

Django模板语言(一)

date

根据给定格式对一个日期变量进行格式化。

def variable(request):
    var = datetime.datetime.now()
    return render(request, 'variable.html', {'var': var})
{{ var|date:"Y-m-d" }}

Django模板语言(一)

truncatechars

截断的字符串将以 ... 结尾

def variable(request):
    var = '我很好的很好得很哈'
    return render(request, 'variable.html', {'var': var})
{{ var|truncatechars:5 }}

Django模板语言(一)

 

以上总结或许能帮助到你,或许帮助不到你,但还是希望能帮助到你,如有疑问、歧义,评论区留言会及时修正发布,谢谢!


未完,待续…

一直都在努力,希望您也是!

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值