python2.7的flask框架之Jinja2模板引擎简单了解下(简介&安装&启用调试支持模块&基本 API 使用案例)
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_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 。
好啦,本次记录就到这里了。
如果感觉不错的话,请多多点赞支持哦。。。
上一篇: ArrayList,LinkedList,HashMap简单实现
下一篇: Qt的容器类