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

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

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

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

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

{% block title %}{% endblock %}

我们要注意的是,Jinja2 需要至少 Python 2.4 版本来运行。如果我们是2.4之后的,并且没有那个模板引擎的话,我们可以用 easy_install 或 pip 安装最新的版本的 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 。

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

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

你可能感兴趣的:(原创)