Skip to main content
 首页 » 编程设计

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

2025年05月04日8jyk

您好,此问题特定于 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已经有了“自动转义扩展”,为什么还需要“markupsafe”?

在这里Google App Engine Jinja2 and Markupsafe说:markupsafe 使 jinja2 运行得更快。如果是这样,为什么我们需要显式包含它而应用引擎可以隐式包含它?

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

请您参考如下方法:

一次回答一个问题:

  1. 如您所料,Markupsafe 是一个 C 语言库,它加速转义 HTML 的过程。

  2. 当您创建 Python 环境时,Google 不会隐式包含它,因为他们决定不这样做 - 您需要选择使用 Markupsafe(显式可能比隐式更好?)

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