Jinja2 —— 超级模板 Python 库

继续我们的有趣的 Python 库之旅 ——

一个小小的库,或许能避免重复造轮子

一个不显眼的功能,也许能在关键时刻拯救我们

一个出乎意料的方法,或许能激发更多创意灵感

一个独特的技能,也许能成为我们的守护神……


当你需要在 Python 中生成动态的 HTML 页面时,你可能会让自己的代码充斥着一堆乱七八糟的字符串拼接或者混杂的 HTML 标签,整个代码像是一幅难以理解的抽象画。但是有了Jinja2,情况就不同了!

什么是 Jinja2?

Jinja2

[1]

是一款强大的 Python 模板引擎,它将模板语言的灵活性与 Python 代码的强大功能完美结合,达成了既易于阅读和维护又具有高效执行能力的平衡。

由于它的设计十分现代化和模块化,Jinja2 成为许多 Python Web 框架的首选模板引擎。如果你熟悉 Django 的模板系统,会发现 Jinja2 的语法非常相似,但它提供了更多的灵活性和更强大的工具包。

与Django 的模板系统比较起来,Jinja2 更加重视灵活性,并包含如宏、包含和导入等高级模板功能。

而相比 Mako,Jinja2 使用的模板语法更加强大且易于理解。

Jinja2 支持 Python 3.5 以上版本,并拥有广泛的特性,如模板渲染、自动 HTML 转义等。

项目地址: https://palletsprojects.com/p/jinja/

安装 Jinja2

Jinja2 不是 Python 的标准库,你需要使用 pip 来安装它。打开终端,只需输入下面的命令:

pipinstallJinja2

Jinja2 的精髓

Jinja2 的使用非常简单直观,但背后涵盖的功能十分强大。下面我们来一探究竟它的丰富和实用性。

基础模板语法

Jinja2 模板中最常用的三个控制结构:

  • 模板继承 {% extends "base.html" %}

  • 控制块 {% block content %}...{% endblock %}

  • 循环 {% for item in items %}...{% endfor %}

这些结构让你能够轻松地重用代码并组织项目。比如下面的例子,我们创建了一个用户列表:

{% extends "layout.html" %} {% block body %}

{% endblock %}

通过这种方式,你可以将 HTML 结构放在 layout.html 模板中,然后在其他模板中扩展它。

一系列内置功能

Jinja2 提供了自动 HTML 转义、模板继承、高性能运行(即时编译为 Python 字节码)等特性。

它还支持沙箱执行模式—一种监控模板执行的每个方面,并显式地白名单或黑名单操作的方式,这在安全性要求高的应用中十分有用。

灵活的调试支持

Jinja2 与Python 的标准错误回溯系统集成良好,模板中的编译错误和运行时错误都可以通过 Python 的回溯系统轻松定位。

就地调试

在出错时,Jinja2 的错误信息包含详细的提示,帮助你快速定位问题所在。而且可以通过配置修改 Jinja2 的语法,以适应不同的输出格式,如 LaTeX 或 JavaScript。

实践案例

让我们通过一个简单的示例来看看如何在实际项目中使用 Jinja2。

假设我们正在开发一个博客平台,现在需要设计一个博客文章的页面。我们可以先创建一个基础模板 base.html,里面包含网站的页头、页脚和主导航。

然后,我们会创建一个 post.html 模板,它从 base.html 中继承,并填充文章的具体内容:

{% extends "base.html" %} {% block content %}

{{ post.title }}

{{ post.date }}
{{ post.body }}
{% endblock %}

在Python 代码中,我们使用 Jinja2 环境加载模板,并填充数据:

fromjinja2importEnvironment,FileSystemLoader #创建一个加载器,Jinja2会从"templates"文件夹中加载模板 env=Environment(loader=FileSystemLoader('templates')) #加载模板 template=env.get_template('post.html') #渲染模板,传入数据 html=template.render(post={ 'title':'我的博文', 'date':'2021-04-01', 'body':'...' })

以上就是“Jinja2 —— 超级模板 Python 库”的全部内容,希望对你有所帮助。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

二、Python必备开发工具

img

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

五、Python练习题

检查学习结果。

img

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

img

最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

你可能感兴趣的:(python,数据分析,开发语言)