欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python2.7的flask框架之Jinja2模板引擎简单了解下(简介&安装&启用调试支持模块&基本 API 使用案例)

程序员文章站 2022-03-04 14:33:57
...

Jinja2 是一个现代的,设计者友好的,仿照 Django 模板的 Python 模板语言,因为它速度快,并且提供了可选的沙箱模板执行环境保证安全,所以被广泛使用。以我们PHP开发者来说,Smarty模板引擎就是我们比较熟悉的了,之后来学习这个Jinja2模板引擎,就会有种宾至如归的感觉。当然,其他开发者如果之前有接触过 Django 模板引擎的话,同样也会有这种感觉。

咱们废话不多说哈,先来看下它的特性:

  • 沙箱中执行
  • 强大的 HTML 自动转义系统保护系统免受 XSS
  • 模板继承
  • 及时编译最优的 python 代码
  • 可选提前编译模板的时间
  • 易于调试。异常的行数直接指向模板中的对应行。
  • 可配置的语法

完事在来看段代码来更加具体的了解下它的编码方式:

<title>{% block title %}{% endblock %}</title>
<ul>
{% for user in users %}
  <li><a href="{{ user.url }}">{{ user.username }}</a></li>
{% endfor %}
</ul>

我们要注意的是,Jinja2 需要至少 Python 2.4 版本来运行。如果我们是2.4之后的,并且没有那个模板引擎的话,我们可以用 easy_installpip 安装最新的版本的 Jinja2模板引擎。来看下命令行:

sudo easy_install Jinja2
sudo pip install Jinja2

上述命令行会在我们的 Python 安装中的 site-packages 目录安装一个 Jinja2 egg ,不过如果在 Windows 的命令行中安装,就需要省略 sudo 并且确保我们使用的是管理员权限来运行 命令行。

我们要知道,默认 Jinja2 不会编译调试支持模块,如果我们没有 Python 头文件或可用的编译器, 启用它会失败。这在当我们在 Windows 上安装 Jinja2 是很常见的情况。由于调试模式只对 Python 2.4 是必要的,所以我们不需要这么做,除非我们在运行 2.4,好吧,来看下开启调试支持模式的代码:

sudo python setup.py --with-debugsupport install

最后,咱们来尝试使用基本的API,就是通过 Template 创建一个模板并渲染它,来看个实例:

>>> from jinja2 import Template
>>> template = Template('Hello {{ name }}!')
>>> template.render(name='John Doe')
u'Hello John Doe!'

上述代码的具体作用就是,先来创建一个 Template 的实例,然后得到一个新的模板对象 ,最后提供一 个名为 render() 的方法,该方法在有字典或关键字参数时调用 扩充模板。字典或关键字参数会被传递到模板,即模板“上下文”。

由上可知,Jinja2 内部使用 unicode 并且返回值也是 unicode 字符串,所以要确 保我们的应用里也确实使用 unicode 。

好啦,本次记录就到这里了。

如果感觉不错的话,请多多点赞支持哦。。。