python--Jinja2

jinja2定义

一个非常强大的模板引擎,常用于 Python 的 Web 开发中。它允许你将 HTML、XML 或其他文本格式与动态数据结合起来,来生成动态内容。
jinja2模板包含变量,表达式,标签。变量和表达式在模板求值的时候会被替换为值,标签可以控制模板的逻辑。模板语法来源与Django和python。

jinja2的语法

语句:{%…%}
变量:{{…}}
注释:{#…#}

jinja2的使用例子

from jinja2 import Template,Environment, FileSystemLoader
#1.简单例子
temp = Template('Hello {{ name }}!')
print(temp.render(name='John'))

#2.渲染文件
#创建一个指向当前目录的文件系统加载器
loader = FileSystemLoader('./')
env = Environment(loader=loader)
temp2 = env.get_template('jinja2.j2')
result2 = temp2.render(name='John')
print(result2)

#3.for的使用 列表
temp3 = Template('''
{% for name in  a-%}
hello {{name}}
{% endfor %}
''')
names = ['John','Peter']
result3 = temp3.render(a=names)
print(result3)

#4.for的使用,列表里面的字典
temp4 = Template('''
{% for dict in list -%}
my name is {{dict.name}},age is {{dict.age}}
{% endfor%}''')
list = [
    {'name':"John","age":25},
    {'name':"Peter","age":23},
    {'name':"Apple","age":15}
]
result4 = temp4.render(list=list)
print(result4)

#5.if的使用
temp5 = Template(
'''
{% for dict in list -%}
{% if dict.age > 18 -%}
myname is {{dict.name}},age is {{dict.age}}
{%- endif %}
{% endfor %}
'''
)
result5 = temp5.render(list=list)
print(result5)

#6.filter的使用
#6.1 内置的过滤器,通过过滤器,对变量进行修改,
#low,upper,title,trim,join,replace,round,int
temp6 = Template(
'''
{% for dict in list -%}
{% if dict.age > 18 -%}
myname is {{dict.name | upper}},age is {{dict.age}}
{%- endif %}
{% endfor %}
'''
)
result6 = temp6.render(list=list)
print(result6)

#6.2 自定义过滤器
from jinja2 import Environment, Template
def my_filter(s):
    return s.replace(' ','-')
env = Environment()
# 注册过滤器
env.filters['my_filter'] = my_filter
temp7 = env.from_string("{{ 'Hello World' | my_filter }}")
result7 = temp7.render()
print(result7)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赵钱孙李的赵

感谢各位衣食父母

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值