Jinja2模板介绍

Jinja2:是Python的Web项目中被广泛应用的模板引擎,是由Python实现的模板语言,Jinja2 的作者也是 Flask 的作
者。他的设计思想来源于Django的模板引擎,并扩展了其语法和一系列强大的功能,其是Flask内置的模板语言。
jinja2之所以被广泛使用是因为它具有以下优点:
1、相对于Template,jinja2更加灵活,它提供了控制结构,表达式和继承等。
2、相对于Mako,jinja2仅有控制结构,不允许在模板中编写太多的业务逻辑。
3、相对于Django模板,jinja2性能更好。
4、Jinja2模板的可读性很棒。
要渲染一个模板,通过 render_template 方法即可。

 

模板传参
1、在使用render_template 渲染模版的时候,可以传递关键字参数(命名参数)。以后直接在模版中使用就可
以了。
2、 如果你的参数项过多,那么可以将所有的参数放到一个字典中,或者列表中都可以。一般如果想将字典打散成
关键字参数可以在参数的前面加 **

代码:

  

from flask import Flask,render_template



app = Flask(__name__)
student={
"name":"zhangsan ","age":"21","gender":"男",

}

student_list=[
{
"name":"zhangsan ","age":"21","gender":"男"},
{"name":"lisi ","age":"25","gender":"男"},
{"name":"wangwu ","age":"29","gender":"女"},


]
student_dict=[{

"aaa":{"name":"zhangsan ","age":"21","gender":"男"},
"bbb":{"name":"lisi ","age":"25","gender":"男"},
"ccc":{"name":"wangwu ","age":"28","gender":"女"}
}

]


@app.route('/tset1')
def test1():
return render_template('1.html',**student)

@app.route('/test2')
def test2():
return render_template('2.html',stu_list=student_list)

@app.route('/test3')
def test3():
return render_template('2.html',stu_dict=student_dict)


if __name__ == '__main__':
app.run()

语法
在jinja2中,存在三种语法:
1. 控制结构 (逻辑代码){% %}
2. 变量取值 {{ }}
3. 注释 {# #}

posted @ 2024-07-19 10:45  yongheng999  阅读(136)  评论(0)    收藏  举报