【问题标题】:Using Wagtail as an API layer使用 Wagtail 作为 API 层
【发布时间】:2018-12-11 20:33:36
【问题描述】:

我的公司正在评估 Wagtail 作为我们网站部分内容的 CMS。目前我们正在运行 Python 2.7 和 Django 1.5(不要问...)。我们能够在一个单独的实例上运行 Wagtail,该实例可以包含最新版本的 Python/Django,但我们将无法在我们的主应用程序中开箱即用地运行 Wagtail。

我们正在考虑将 Wagtail 严格用作 CMS,然后将来自我们主网站的请求代理到 Wagtail 实例并仅返回生成的标记。

有没有人做过类似的事情,可以提供我们可能采取的过程的见解? Wagtail 是否提供开箱即用的功能?我们可能会遇到哪些潜在的陷阱,或者我们应该注意什么?

这可能意味着我们将其视为存储不同内容片段的一种方式,而不是存储在 Wagtail 中的“整个页面”:将加载到我们的主页中的一段文本,或动态搜索结果的外包装页面。

【问题讨论】:

    标签: python django wagtail


    【解决方案1】:

    是的,Wagtail 确实通过其 API 提供了这样的功能:

    http://docs.wagtail.io/en/v2.1/advanced_topics/api/

    您可以使用 JavaScript 从主网站的前端使用 API(React 和 Vue 是这种方法的流行选项,但如果您不需要带有路由的复杂单页应用程序,则它们不是必需的等),或从后端,从您的 Django 1.5 应用程序的视图发出 HTTP 请求。

    至于潜在的陷阱,主要问题是 Wagtail 预览无法开箱即用,因为 Wagtail 不知道内容将如何呈现。如果您在呈现 Wagtail API 内容的网站上有一个可预测的 URL 结构,则可以配置预览机制来处理这个问题。

    如果 API 方法不是您的想法,您还可以考虑在主站点中嵌入渲染片段的方法。例如,如果您在主站点前面使用 Varnish,则可以利用 Edge Side Includes:

    https://varnish-cache.org/docs/3.0/tutorial/esi.html

    最后,您可能会发现最近关于 Wagtail 作为“无头”CMS 的演讲很有用:

    【讨论】:

      猜你喜欢
      • 2011-05-03
      • 1970-01-01
      • 2013-10-03
      • 1970-01-01
      • 2019-03-06
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 2018-11-18
      相关资源
      最近更新 更多