1、vim learn/home.html
<!DOCTYPE html>
<html>
<head>
<title>{{title}}</title>
</head>
<body>
<hl>hello {{user}}</hl>
</body>
</html>
花括号里加入的就是模板变量
2、vim /learn/views.py
def home(request):
return render(request,'home.html',{'title':'my page','user':'ssj'})
同样的改动的也只是花括号里面的东西,就像一个key 对应一个value
3、还可以这样写
<!DOCTYPE html>
<html>
<head>
<title>{{title}}</title>
</head>
<body>
<hl>name {{user.name}}</hl>
<li>age : {{user.age}}</li>
<li>sex :{{user.sex}}</li>
<li> :{{book_list.0}}</li>
<li> :{{book_list.1}}</li>
<li> :{{book_list.2}}</li>
<li> :{{book_list.3}}</li>
</body>
</html>
4、 也可以写一个函数然后从中调用
class Person(object):
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex
def home(request):
user = {'name':'ssj','age':'22','sex':'man'} 传递一个字典
user = Person('sdj','25','boy') 传递一个对象
book_list = ['python','java','php','web'] 传递一个列表
return render(request,'home.html',{'title':'my page','user':user,'book_list':book_list})
可见视图向模板传递的方法很多,普通变量、字典、对象、列表,可以使用对象的属性也可以使用对象的方法。
而且注意在调用对象方法时有个特点是:没有参数,但要有一个确定的返回值。
这个还存在一个优先关系:
如果直接给了一个量话就使用基本变量;
但如果存在引用的话:首先是字典、其次是对象的属性、再就是对象的方法、列表排最后
多种方法可以使用,功能很强大也很灵活