.png)
jinja2 可以用来修改配置文件,把配置文件的关键地方可以用变量来进行替换
模板语法和django的模板语法差不多 在jinja2中,存在三种语法:
1 2 3 | {% for user in users %}{{user.username}}{% endfor %} |
迭代字典
1 2 3 4 | {% for key,value in my_dict.iteritems() %}{{ key }}{{ value }}{% endfor %} |
过滤器
常用的过滤器有:
1 2 | {{ 'abc' | catialize }}# Abc |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <!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> |
1 2 3 4 5 6 7 8 9 10 11 12 | {% 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
使用包加载器来加载文档的最简单方式如下:
1 2 3 4 | from jinja2 import PackageLoader, Environmentenv = Environment(loader=PackageLoader('python_project', 'templates')) # 创建一个包加载器对象template = env.get_template("base.html") # 获取一个模板文件template.render(name="daxin", age=18) |
3.FileSystemLoader
文件系统加载器,不需要模板文件存在某个Python包下,可以直接访问系统中的文件
1 2 3 4 5 6 7 8 9 | import osfrom jinja2 import PackageLoader, Environment, FileSystemLoaderpath_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模板的资料请关注脚本之家其它相关文章!