1

我有一个自定义视图返回 AJAX 的 JSON 有效负载:

class DataSource(grok.CodeView):
    """
    Generate JSON array needed to populate the fields
    """
    grok.context(ISiteRoot)
    grok.name("dgftreeselect-test-data")

    def render(self):
        self.request.response.setHeader("Content-type", "application/json")
        return json.dumps(SAMPLE_DATA)

我想对生成的 HTTP 响应应用 plone.app.caching 的中等缓存操作。

用 Python 表达我的意图的最短和最漂亮的方式是什么?

如果它更简单……那么直接说“在浏览器/前端代理中缓存 24 小时”。

4

1 回答 1

2

您想在 ZCML 中执行此操作,例如

  <cache:rulesetType
      name="my.package.DataSource"
      title="My data source view"
      description="Contains data stuff"
      />

  <cache:ruleset
    ruleset="my.package.DataSource"
    for=".browser.DataSource"
    />

然后,您可以使用 Plone UI 或 registry.xml 导入将 my.package.DataSource 映射到您想要的操作(例如适度缓存)。

有关如何定义规则集并将视图映射到它们,请参阅http://pypi.python.org/pypi/z3c.caching/2.0a1 ;http://pypi.python.org/pypi/plone.app.caching了解如何管理 Plone 的规则集。

于 2012-09-18T07:16:45.927 回答