- django-3 把数据动态的传到模板中去
- 1. 引入模板变量的概念
- 模板变量是由两个大括号组成 例如`var` 变量是以字典的方式传递
- 2.在views.py里添加
- from django.shortcuts import render_to_response
- def index(req):
- return render_to_response('index.html',{'var1':'test1','var2':'test2'})
- 稍微复杂点的
- def index(req): 变量是字典
- test1={'name':'tom','age':'23','sex':'male'}
- return render_to_response('index.html',{'var1':'test1','var2':'test2'})
- 在模板里显示的时候可以直接调用字典变量的value值 例如`var1`.`name`
- 3 在模板中去传递对象,写法如下
- from django.shortcuts import render_to_response
- class Person(object):
- def __init__(self,name,age,sex):
- self.name=name
- self.age=age
- self.sex=sex
- def say(self):
- return I'm +self.name
- def index(req):
- test1=Person('tome,'22','male')
- book_list=['python','java','php']
- return render_to_response('index.html',{'var1':'test1','var2':'test2','book_list':book_list})
- 由此可见,模板可以接受普通变量,接受字典,还可以接受类的对象,甚至列表 在模板里调用列表的值,
- 4.调用类的方法就是类的函数
- 在模板里这样写:
- `test1`.`say` test1是步骤3里的变量,say是类的方法
- 注意:在调用对象的方法的时候,没有参数,一定要有返回值
- 模板在引用传递的变量对象的时候,存在优先级,首先是字典,然后是对象的属性(即类里的变量),然后是对象的方法即类的函数,最后是列表