用flask开发个人博客(9)—— Jinja2模板中的变量

        Jinja2模板有自己的逻辑和变量, 在上一文介绍过的user.html中的 {{ name }} 就是一个变量,它可以被理解成为一种特殊的占位符,告诉模板引擎这个位置的值从渲染模板时使用的数据中获取。在模板中基本可以识别所有数据类型的变量:整形,浮点型,元组,list,甚至是一些自定义的复杂的类型。

param.html:

A value from a dictionnary:{{mydict['key']}}

A value from a list:{{mylist[2]}}

A value from a list with variable index:{{mylist[myintvar]}}

A value from an object's method:{{myobj.getname()}}


第一行表示字典类型的数据,第二行表示列表或者元组类型的数据,第三行表示索引为变量的列表或者元组类型的数据,第四行表示类中定义的方法。

        我们在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()

运行效果:
用flask开发个人博客(9)—— Jinja2模板中的变量_第1张图片


        在使用变量时,我们还可以给变量添加过滤器,以达到不同的效果,如给变量的数据首字母大写:

{{ name|capitalize }}

        把变量的值改成大写形式:

{{ name|upper }}

等等。。。



Github位置:
https://github.com/HymanLiuTS/flaskTs

克隆本项目:
git clone g[email protected]:HymanLiuTS/flaskTs.git
获取本文源代码:
git checkout FL09

你可能感兴趣的:(用flask开发个人博客)