视图函数中必须将变量封装到字典中才允许传递到模板上
views层
def test(request):
dic = {}
#1&2. 演示在模板中显示变量的值和使用索引
dic['lst'] = ['小红','小明','小兰']
#3. 模板层想要'username'的值
dic['dict'] = {'username':'yutaixin'}
#4. 向模板层传对象,演示在模板中使用 {{ 对象.方法 }}
dic['class_obj'] = Dog()
#5. 向模板中传递函数
dic['say_hi'] = say_hi
return render(request,'test.html',dic)
#用于演示向模板层传:对象.方法
class Dog:
def say(self):
return 'hahaha'
#用于演示向模板中传函数
def say_hi():
return 'say hi'
模板层
<body>
<!-- 1. 显示变量:{{ 变量名 }} -->
<h3>lst是 {{ lst }}</h3>
<!-- 显示为:lst是 ['小红','小明','小兰'] -->
<!-- 2. 通过index取列表等数据类型里面的元素:{{ 变量名.index }}-->
<h3>lst第一个元素是 {{ lst.0 }}
<!-- 显示为:lst第一个元素是 小红 -->
<!-- 3. 通过.大法取出字典username的值 -->
<h3>dict中username的值是 {{ dict.username }}</h3>
<!-- 显示结果为:dict中username的值是 yutaixin -->
<!-- 4. 模板中使用views中传来的对象的方法:{{ 对象.方法 }} -->
<h3>class obj 调用say方法是 {{ class_obj.say }}</h3>
<!-- 显示结果为:class obj 调用say方法是 hahaha -->
<!-- 5 . 模板中使用传进来的函数:{{ 函数名 }} -->
<h3>say hi 直接调用 结果是 {{ say_hi }}</h3>
<!-- 显示结果为:say hi 直接调用结果是 say hi -->
</body>