jinja2 可以用来修改配置文件,把配置文件的关键地方可以用变量来进行替换
模板语法和django的模板语法差不多 在jinja2中,存在三种语法:
{% for user in users %} {{user.username}} {% endfor %}
迭代字典
{% for key,value in my_dict.iteritems() %} {{ key }} {{ value }} {% endfor %}
过滤器
常用的过滤器有:
{{ 'abc' | catialize }} # Abc
!DOCTYPE html> html lang="en"> head> {% block head %} link rel="stylesheet" href="style.css" rel="external nofollow" /> title>{% block title %}{% endblock %} - My Webpage/title> {% endblock %} /head> body> div id="content">{% block content %}{% endblock %}/div> div id="footer"> {% block footer %} script>This is javascript code /script> {% endblock %} /div> /body> /html>
{% extend "base.html" %} # 继承base.html文件 {% block title %} Dachenzi {% endblock %} # 定制title部分的内容 {% block head %} {{ super() }} # 用于获取原有的信息 style type='text/css'> .important { color: #FFFFFF } /style> {% endblock %} # 其他不修改的原封不动的继承
jinja2 模块中有一个名为Enviroment的类,这个类的实例用于存储配置和全局对象,然后从文件系统或其他位置中加载模板
1.基本使用方法
2.PackageLoader
使用包加载器来加载文档的最简单方式如下:
from jinja2 import PackageLoader, Environment env = Environment(loader=PackageLoader('python_project', 'templates')) # 创建一个包加载器对象 template = env.get_template("base.html") # 获取一个模板文件 template.render(name="daxin", age=18)
3.FileSystemLoader
文件系统加载器,不需要模板文件存在某个Python包下,可以直接访问系统中的文件
import os from jinja2 import PackageLoader, Environment, FileSystemLoader path_dir = "/mnt/e/files" loader = FileSystemLoader(searchpath=path_dir) env = Environment(loader=loader) template = env.get_template("index.opf") # 模板文件 buf = template.render(name="daxin", age=18) with open(os.path.join("path_dir", "index.opf"), "w" ) as fp: fp.write(buf)
以上就是python jinja2模板的使用示例的详细内容,更多关于python jinja2模板的资料请关注脚本之家其它相关文章!
上一篇:正确的使用Python临时文件