Django模板系统

1.模板系统(template)

(1).模板系统常用符号{{}}和{%%}

如果在模板中需要解析变量使用{{}}.
如果在模板中进行逻辑相关操作使用{%%}
注释 {# … #},单行注释。

(2).变量

在Django的模板系统中变量使用的语法:{{ 变量名 }}。
当模版引擎遇到变量,就会用值替换掉变量。
变量的命名可以是字母数字以及下划线 ("_")的组合。
变量名称中不能有空格或标点符号。
练习1:把html文件中的{{name}}替换成‘老王’
html文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>老王2</title>
</head>
<body>
大家好,我是{{ name }},请大家多多关照!!!!!!!!

</body>
</html>

views.py文件

from django.shortcuts import HttpResponse,render
def laowang2(request):
    return render(request,'laowang2.html',{'name':'老王'})

urls.py文件

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

练习2:将页面中的{{name}},{{age}},{{height}} 替换成具体的值

<body>
大家好,我是{{ name }},年龄{{ age }},身高{{ height }}.
</body>
def laowang3(request):
    name='老王'
    age=18
    height=160
    return render(request,'laowang3.html',locals())    #locals()表示当前函数中所有的局部变量,以键值对的形式输出
urlpatterns = [
    path('admin/', admin.site.urls),
    path('laowang3/',views.laowang3),]

练习3:使用类和函数来给变量赋值

<body>
大家好我是{{ person.name }},年龄{{ person.age }},我的梦想{{ person.dream }}

</body>
    class Person(object):
        def __init__(self,name,age):
            self.name=name
            self.age=age
        def dream(self):
            return '吃西瓜吃到撑'
    def laowang5(request):
        person = Person('老王',18)
        return render(request,'laowang5.html',{'person':person})
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('laowang5/',views.laowang5),]

练习4:把列表中元素填到对应位置

<body>
{{ name_lst.0 }}----------->>>{{ name_lst.1 }}----------------------->>>{{ name_lst.2 }}
</body>
def laowang6(request):
    name_lst = ['安其拉','狄仁杰','鲁班']
    return render(request,'laowang6.html',{'name_lst':name_lst})
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('laowang6/',views.laowang6),]

2.Filters(过滤器)

在Django的模板语言中,通过使用 过滤器 来改变变量的显示。(注:过滤器是函数)
过滤器的语法: {{ 变量名|过滤器名称:参数 }}
使用管道符"|"来应用过滤器。
下面举几个过滤器的例子

<body>
{{ str }}<br>            
{{ str|upper }}                                              #接收一个字符串,把字符串中的英文字母全部转化为大写
<hr>
{{ str|default:'拉拉阿拉' }}                          #为str添加一个默认值,若str为空时,则输出规定值,若不为空的时候则输出原值
<hr>
{{ str|length }}                             #输出字符串长度
<hr>
{{ str|slice:"0:3" }}                    #将字符串切片输出
</body>
def laowang8(request):
    return render(request,'laowang8.html',{'str':'sadzxcawdesad'})
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('laowang8/',views.laowang8),]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值