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),]