朋友安利的一个包,简单试一试
官网地址:Jinja
小栗子
最简单的使用,是使用Template,就和String中的Template差不多,但是强大很多
from jinja2 import Template
template = Template('Hello {{ name }}!')
template.render(name='John Doe')
![](https://img.haomeiwen.com/i76024/ebcc34a5ce4694e6.png)
这样子,就可以了
官方推荐的使用方法不是直接初始化Template,而是提前定义好模板
使用Environment来统一加载所有的模板,按需获取使用
from jinja2 import Environment, FileSystemLoader
env = Environment(loader=FileSystemLoader('templates'))
template = env.get_template('hi.txt')
template.render(name='苹果')
这里使用FileSystemLoader
加载了一个当前的模板目录,当前目录下的所有的文件应该都会作为模板被加载
然后,我们可以使用get_template
来根据名字加载模板
最后使用得方法,都是一样的了。
哦,我们的模板是这样的:
![](https://img.haomeiwen.com/i76024/667b6ef25a0d20d2.png)
下面,我们需要看看JinJa强大在什么地方
这里的模板后缀名是没什么关系的,所以不要在意我这里的txt
for 循环
JinJa,我感觉很类似Java里的那个JSP,就是可以在模板中写一些代码,JinJa中可以写Python
比如循环语句就是可以的
控制结构指的是所有的那些可以控制程序流的东西 —— 条件(比如 if/elif/ekse )、 for 循环、以及宏和块之类的东西。控制结构在默认语法中以 {% .. %} 块的形式 出现。
模板:
For demo
{% for i in users %}
Hi, {{i}}
{% endfor %}
模板的注意事项:
{% ... %}
,用来使用类似for循环的这种语句
这里是有开始和结束的,中间的代码块儿是会重复输出的
这里我们再for循环中,遍历了users
变量,所以,我们将一个可以被遍历的变量进去就行了,我们循环的内容是输出变量i
的值
rs = template.render(users=list(range(10)))
print(rs)
![](https://img.haomeiwen.com/i76024/24a74be65e85704a.png)
详细的内容,可以参考官方文档:模板设计者文档
网友评论