Jinja2模板有自己的逻辑和变量, 在上一文介绍过的user.html中的 {{ name }} 就是一个变量,它可以被理解成为一种特殊的占位符,告诉模板引擎这个位置的值从渲染模板时使用的数据中获取。在模板中基本可以识别所有数据类型的变量:整形,浮点型,元组,list,甚至是一些自定义的复杂的类型。
param.html:
<p>A value from a dictionnary:{{mydict['key']}}</p>
<p>A value from a list:{{mylist[2]}}</p>
<p>A value from a list with variable index:{{mylist[myintvar]}}</p>
<p>A value from an object's method:{{myobj.getname()}}</p>
第一行表示字典类型的数据,第二行表示列表或者元组类型的数据,第三行表示索引为变量的列表或者元组类型的数据,第四行表示类中定义的方法。
我们在test.py中这么进行渲染:
from flask import Flask
from flask import render_template
class Myobj(object):
def __init__(self,name):
self.name=name
def getname(self):
return self.name
app=Flask(__name__)
@app.route('/')
def index():
mydict={'key1':'123','key':'hello'}
mylist=(123,234,345,789)
myintvar=0
myobj=Myobj('Hyman')
return render_template('param.html',mydict=mydict,mylist=mylist,myintvar=0,myobj=myobj)
if __name__=='__main__':
app.run()
运行效果:
在使用变量时,我们还可以给变量添加过滤器,以达到不同的效果,如给变量的数据首字母大写:
{{ name|capitalize }}
把变量的值改成大写形式:
{{ name|upper }}
等等。。。
Github位置:
https://github.com/HymanLiuTS/flaskTs
git clone git@github.com:HymanLiuTS/flaskTs.git
获取本文源代码:
git checkout FL09