Jinjia2
Jinjia2是基于python的一个引擎,Flask使用jinja2作为框架的模板系统。
1.Jinjia2中的装载方式
在Jinjia2中{ { 变量名 }}用来装载变量,模板渲染的时候,会把这个变量代表的值替换掉。并且可以间接访问一个变量的属性或者一个字典的key。关于点.号访问和[]中括号访问,没有任何区别,都可以访问属性和字典的值。
在Jinjia2中{% 控制语句 %}用来装载一个控制语句,例如if语句、for循环语句等。
在Jinjia2中{# 注释 #}用来装载一个注释,模板渲染的时候会忽视这中间的值。
2.变量和注释的装载
我们如果需要在导入的html文件中装载python文件中的变量,就需要首先对变量进行渲染,再通过{ { 变量名 }}的方式在html页面中装载,例如,我们新建一个app.py实例文件,并写入以下代码,
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/variables/')
def variables():
contest = {
'name': 'wangdaye',
'age': 75,
'country': 'China',
'children': {
'name': 'yuqian',
'age': 48,
}
} # contest为要渲染的内容
return render_template('variables.html', **contest) # 第二个参数为对contest字典进行渲染
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=8080)
我们再新建一个variables.html文件,代码如下,
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>变量的装载</title>
</head>
<body>
<p>{
{
name }}</p> // 通过{
{ name }}将contest中的name键对应的值装载进来
{
# 通过{
{
name }}将contest中的name键对应的值装载进来 #} // 这是注释
<p>{
{
age }}</p>