【问题标题】:Google App Engine - Python and render from bigtableGoogle App Engine - Python 和 bigtable 渲染
【发布时间】:2011-08-08 15:16:29
【问题描述】:

我在那儿:

我正在试验 GAE,我希望使用普通的 python(不是 Django 或其他框架)创建一个 CMS。我的问题是 GAE 不允许保存文件,所以我可以将用户创建的模板保存在文件夹中。

当你想渲染一个文件时,你使用下一个命令:

    tmpl = os.path.join(os.path.dirname(__file__), 'templates/mypage.html')
    self.response.out.write(render(tmpl, context))

有没有办法直接从 BigTable 的注册表或从变量而不是文件呈现? (不使用 Django)。

【问题讨论】:

  • App Engine 数据存储基于 BigTable 构建,但它不是 BigTable - 它是数据存储。

标签: python google-app-engine templates


【解决方案1】:

首先,如果您使用的是template.render,那么您正在使用一个框架:GAE 中包含的最小“webapp”框架。当然,template 模块本身是 Django 模板库的薄包装器。然而,包装器 - 处理 Django 和 webapp 之间的一些不兼容性 - 没有公开直接从字符串呈现的方法。

确实允许访问基本的 django Template 类,该类可用于直接从模板字符串实例化模板:

tmpl = template.Template(template_string)
tmpl.render(template.Context(context))

由于这些不兼容性,这可能有效,也可能无效。

【讨论】:

  • 谢谢。但是,我无法弄清楚如何在模板中{"% include %}"。
  • 嗯,这是在这种情况下可能永远行不通的事情之一。
  • 您可以为 Django 编写自定义模板加载器,调用这些加载器来解析包含等中的文件名。不过,这是一个更高级的主题,您绝对应该从阅读和学习如何模板开始系统工作。您正在尝试做一些非常困难的事情,只对正在发生的事情有基本的了解。
猜你喜欢
  • 2011-04-22
  • 2012-10-15
  • 1970-01-01
  • 1970-01-01
  • 2015-09-15
  • 2011-05-04
  • 1970-01-01
  • 2019-12-30
  • 2017-03-30
相关资源
最近更新 更多