【问题标题】:Jinja2 in Google App EngineGoogle App Engine 中的 Jinja2
【发布时间】:2011-01-22 20:57:35
【问题描述】:

我已经开始使用Jinja2 作为我在 Google App Engine 上的模板引擎(在 Python 中)。

我的问题是:字节码缓存会在生产中起作用吗?它在开发服务器上运行良好,但我在某处读到字节码缓存依赖于 marshal 模块,App Engine 不支持该模块。将marshal 更改为使用pickle 方法,将This answer 更改为不同的问题提供了一种可能的解决方案。有人试过吗?

总的来说,在将 Jinja2 与 App Engine 结合使用时,我还有什么需要考虑的吗?

任何帮助将不胜感激!

谢谢。

【问题讨论】:

标签: python google-app-engine caching jinja2


【解决方案1】:

Rodrigo Moraes 在 GAE 下为 Jinja2 创建了一些特殊的加载器,请参阅 here。它不是字节码缓存,而是将所有模板预编译为 Python,从而避免 Jinja2 解析开销。

请注意(来自this GAE page):

已编译的应用程序代码被缓存 快速响应网络请求

【讨论】:

  • 我现在只使用未缓存的模板。当我有更多时间深入研究代码时,我会仔细研究。感谢您的回复!
【解决方案2】:

Jinja2 现在包含在 GAE 中。显然您需要将您的应用迁移到 Python 2.7。

在 app.yaml 添加

libraries:
- name: jinja2
  version: "2.6"

这里是该信息的来源:http://blog.notdot.net/2011/11/Migrating-to-Python-2-7-part-2-Webapp-and-templates

【讨论】:

    【解决方案3】:

    根据What's New in Python 2.7 docs,使用 Python 2.7 也可以上传 .pyc 文件。

    可以上传 .pyc 文件,但不能与 .py 文件结合使用。但是,您可以上传包含 .py 或 .pyc 文件(或组合)的 .zip 文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-06
      • 2012-08-17
      • 2011-06-08
      • 1970-01-01
      • 1970-01-01
      • 2012-09-14
      • 2012-06-06
      • 1970-01-01
      相关资源
      最近更新 更多