jinja2的autoescape扩展和markupsafe库之间的区别

时间:2012-08-18 08:47:42

标签: python google-app-engine jinja2 webapp2

嗨,这个问题特定于Python 2.7 Google App Engine平台。

通常,您会在app.yaml中看到类似的内容:

libraries:
- name: webapp2
  version: "2.5.1"
- name: jinja2
  version: latest
- name: markupsafe
  version: latest

我想知道markupsafe在这做什么。

由于jinja2已经有了“autoescape扩展”,为什么我们仍然需要“markupsafe”?

这里Google App Engine Jinja2 and Markupsafe说:markupsafe使jinja2运行得更快。如果是这种情况,为什么我们需要明确地包含它,而app引擎可以隐式包含它?

有关如何在Google App Engine上使用此markupsafe的任何示例?

1 个答案:

答案 0 :(得分:0)

一次一个地回答您的问题:

  1. 正如您所猜测的那样,Markupsafe是一个C库,加速转义HTML的过程。

  2. Google在创建Python环境时不会隐式包含它,因为他们决定不这样做 - 你需要选择使用Markupsafe(显式优于隐式吗?)

  3. 一旦安装了Markupsafe,Jinja将自动使用它(从而导致模板加速)。