Django框架的模板系统

模板系统(template)

  • 模板系统的功能:向页面中填充内容。

  • 模板系统常用符号{{}}和{%%}

  • 如果在模板中需要解析变量使用{{}}.

  • 如果在模板中进行逻辑相关操作使用{%%}

  • 注释 {# … #},单行注释。

变量:

  • 在Django的模板系统中变量使用的语法:{{ 变量名 }}

  • 当模版引擎遇到变量,就会用值替换掉变量。

  • 变量的命名可以是字母数字以及下划线 ("_")的组合,变量名称中不能有空格或标点符号。

案例1:将html页面中的{{name}}替换为老王。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
大家好,我是资深讲师{{ name }},请多多关照
</body>
</html>

views.py文件

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

注意:key的名称和模板中的变量名称相同。

urls.py文件

from django.contrib import admin
from django.urls import path
from day02_django02 import views
urlpatterns = [path('laowang/', views.laowang),]

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

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
大家好,我是资深讲师{{ name }},今年{{age}}岁了,身高{{height}}请多多关照
</body>
</html>

views.py文件

from django.shortcuts import render
    def laowang1(request):
           name='老王'
           age=19
           height=173
           return render(request,'laowang.html',{'name':'name王',‘age’:age,'height':height})

urls.py文件

from django.contrib import admin
from django.urls import path
from day02_django02 import views
urlpatterns = [path('laowang/', views.laowang1),]

点(.)的特殊含义

点(.)在模板语言中有特殊的含义。
当模版系统遇到点("."),它将以以下顺序查询:

  • 字典查询 :如果向页面传递的是一个字典类型变量:变量名.key 获取相对应的值

例如:将页面中的{{ person.name }},{{person.age}},{{person.dream}} 替换成具体的值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
大家好,我是资深讲师{{ person.name }},年龄:{{ person.age }},我的梦想{{ person.dream }}
</body>
</html>

views.py文件

from django.shortcuts import render
class Person(object):
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def dream(self):
        return '吃一个免费的西瓜'

def laowang1(request):
    person=Person('老王',18)
    return render(request,'laowang1.html',{'person':person})

urls.py文件

from django.contrib import admin
from django.urls import path
from day02_django02 import views
urlpatterns = [path('laowang/', views.laowang1),]
  • 属性或方法查询:如果传递一个对象:变量名.变量名(此变量名有可能是属性,有可能是无参数方法名称且有返回值的方法)

  • 数字索引查询:如果传递一个列表:变量名.索引(从0开始)的形式获取列表中的元素。

例子1:将页面中的{{ name_lst.0}}},{{ name_lst.1}},{{ name_lst.2}} 替换成具体的值。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
{{ name_lst.0}}-->{{ name_lst.1 }}-->{{ name_lst.2 }}
</body>
</html>

views.py文件

from django.shortcuts import render
class Person(object):
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def dream(self):
        return '吃一个免费的西瓜'
def laowang2(request):
    name_list=['安其拉','鲁班','狄仁杰']
    return render(request,'laowang2.html',{'name_lst':name_list})

urls.py文件

from django.contrib import admin
from django.urls import path
from day02_django02 import views
urlpatterns = [path('laowang/', views.laowang2),]

例子2:
将页面中的{{ per.0.name} },{{ per.1.name }},{{ per.2.name }} 替换成具体的值。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
{{ per.0.name }}->>{{ per.1.name }}-->>{{ per.2.name }}
</body>
</html>

views.py文件

from django.shortcuts import render
class Person(object):
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def dream(self):
        return '吃一个免费的西瓜'
  def laowang3(request):
    person1=Person('老王',18)
    person2=Person('老边',18)
    person3=Person('老刘',18)
    person_lst=[person1,person2,person3]
    return render(request,'laowang3.html',{'per':person_lst})

urls.py文件

from django.contrib import admin
from django.urls import path
from day02_django02 import views
urlpatterns = [path('laowang/', views.laowang3),]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值