模板引擎可以将index.py文件中的数据导入html,它的使用主要有一下几种方式:

一、{{ }} 直接引入值或表达式

二、{% %} 引入代码块

三、{{ func(args) }} 调用自定义函数

四、{% module class() %} 调用自定义类


 无论哪一种方式,模板引擎的本质:先进行字符串的拼接、再使用compile和exec编译成代码执行,

# 模板引擎的本质
namespace = {'name':'wupeiq','data':[18,73,84]}
# 1、进行字符串拼接
code = '''def hellocute():return "name %s , age %d " %( name , data[0] ,)'''
# 2、字符串按exec方式进行编译成函数
func = compile(code,'<string>',"exec")
# 3、将函数添加至全局变量
exec(func,namespace)
    # 这一步含义相当于:把namespace看作含有全局变量的终端,在终端上添加可执行函数func,
    # namespace={'name':'wupeiq','data':[18,73,84],'hellocute':func)}
# 4、执行函数
result = namespace['hellocute']()
print(result)
    # output:name wupeiq , age 18 

 注意:tornado服务器通过self.render()向html传递数据,服务器还通过self.write()直接向服务器传递数据;