3.Django模板变量

之前讲的是加载静态的HTML文件,那如何加载动态的HTML文件呢?就要通过模板变量,Django中通常是由{{变量名}}包含的
如:

第一种方式:
vim blog/views.py

from django.shrtcuts import render_to_response

def index(req):
return render_to_response('index.html',{'title':'my page','user':'rooney'})

对应的index.html文件中:
<title>{{title}}</title>
<body>
<h1>hello {{user}}</h1>
</body>
html文件中的{{title}}和{{user}}就是对应的再views.py文件中定义的值

第二种方式:
vim blog/views.py

from django.shrtcuts import render_to_response

def index(req):
user = {'name':'rooney','age':39,sex:'male'}
return render_to_response('index.html',{'title':'my page','user':user})


对应的index.html文件中:
<title>{{title}}</title>
<body>
<h1>hello {{user.name}}</h1>
<h1>age:{{user.age}}</h1>
<h1>sex:{{user.sex}}</h1>
</body>

再进行扩展(通过类来创建对象,然后调用对象):
vim blog/views.py

from django.shrtcuts 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):
user = Person('rooney',39,'male')
book_list = ['python','java','php','web']
return render_to_response('index.html',{'title':'my page','user':user,'book_list':book_list})


对应的index.html文件中:
<title>{{title}}</title>
<body>
<h1>hello {{user.name}}</h1>
<h1>age:{{user.age}}</h1>
<h1>sex:{{user.sex}}</h1>
<div>the {{user.name}} say:{{user.say}}</div>


<h2>sex:{{book_list.0}}</h2>
<h2>sex:{{book_list.1}}</h2>
<h2>sex:{{book_list.2}}</h2>
<h2>sex:{{book_list.3}}</h2>
</body>


总结:在HTML文件中我们可以接收一个普通变量,也可以接收一个字典,还可以接收一个对象,还可以接收一个列表,还可以调用类下面的方法,如上例中的say(注意:调用方法的时候没有参数,而且要有返回值)

猜你喜欢

转载自www.cnblogs.com/zhubochang/p/8940132.html
今日推荐