Flask和Django,以及其它很多Python框架,都默认使用Jinja2来作为模版引擎。
在Python中,什么是模版?就是在一个静态HTML加入一些类似变量的标签,然后引擎在渲染这个HTML时候会动态的把变量填入内容,生成一个最终的HTML。
什么是模版引擎?其实就是一种能解析类似Python语言的标记语言的解释器。
比如我们在HTML模版中输入一个<p> {{ post.title }} </p>,显然这不是真正的HTML语法。但是当Jinja2解释器读取到{{ …}}后知道里面是一个变量,那么就把这个变量替换为真正的值,最后翻译出来就变成了<p>\ 大标题 </p>这样的HTML内容。
Jinja2是一个模版语言,只是类似Python,比较符合Python语法,但不完全相同。
【用法】
Jinja2中有一个名为Environment的对象,用于存储配置、全局变量,并且用于从文件系统中加载模板。
packageLoader()的两个参数为:python包的名称,以及模板目录名称。
get_template():获取模板目录下的某个具体文件。
render():接受变量,对模板进行渲染
# 初始化 jinja 环境
#loader=PackageLoader('模块名称', '模板文件夹'),
jinja_env = Environment(loader=PackageLoader(__name__, 'kernels'))
#使用包加载器加载模板
code_allpre = jinja_env.get_template('alpha_allpre.cu')...)
#传递业务参数 render
render(dims=params['shape'])