模板语法之变量
DTL:Django Template Language
1 模板中使用 {{python变量}}
############views.py
def index(request):
num = 10
ss = 'lqz is handsome'
b = False
ll = [1, 2, 43]
dic = {'name': 'lqz', 'age': 18}
def test():
print('我是test')
return 'test ---撒发射点'
class Person():
def __init__(self, name):
self.name = name
def print_name(self):
return self.name
def __str__(self):
return self.name
p=Person('lqz')
# return render(request, 'index.html',{'num':num,'ss':ss,'b':b})
#locals() 把当前作用域下所有的变量,都传到context中
return render(request, 'index.html',locals())
# index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{{ss}}</title>
</head>
<body>
<h1>模板语法之变量</h1>
<p>数字:{{ num }}</p>
<p>字符串:{{ ss }}</p>
<p>布尔:{{ b }}</p>
<p>列表:{{ ll }}</p>
<p>字典:{{ dic }}</p>
<p>函数:{{ test }}</p>
<p>对象:{{ p }}</p>
</body>
</html>
django模板使用的两种方式
# 方式一
return render(request,'time.html',context={'current_date':str(now),'title':'lqzNB'})
# 方式二(页面静态化,提高网站并发量)
now=datetime.datetime.now()
from day65 import settings
import os
path=os.path.join(settings.BASE_DIR,'templates','time.html')
ss=open(path,'r',encoding='utf-8').read()
t=Template(ss)
c=Context({'current_date':str(now),'title':'lqzNB'})
html=t.render(c) # html是渲染后的字符串
return HttpResponse(html)