在 GAE 应用程序中加载外部模板?
Posted
技术标签:
【中文标题】在 GAE 应用程序中加载外部模板?【英文标题】:Loading an external template in GAE application? 【发布时间】:2014-04-07 08:48:55 【问题描述】:有没有办法从应用程序本身未托管的源加载模板?例如,为了在应用程序本身(由 appengine 应用程序托管)上加载模板:
html = template.render("admin/my_template.html", params)
我想做这样的事情:
html = template.render("http://www.otherhost.com/external_template.html", params)
有允许这种行为的机制吗?
谢谢
【问题讨论】:
你能举例说明你为什么要这样做吗?您确定外部文件实际上是一个 Django 模板,而不仅仅是一个静态 HTML 页面吗? 如果文件是应用程序的一部分,每次我想更改它时,我都需要重新部署整个应用程序。另一方面,如果模板是外部的,我可以独立编辑它。 好吧,从外部站点加载它似乎不是解决该问题的好方法 - 例如,考虑增加的延迟。也许您可以考虑从数据存储区或云存储中加载它? 我主要使用这些模板来发送电子邮件 - 所以延迟在这里不是问题。将其保存在数据存储中将需要为数据库中的 HTML 等实现一个编辑器。但是如果没有从其他地方加载文件的简单解决方案,我可能不得不这样做 【参考方案1】:模板只是字符串。如果你能得到文本,你可以把它解析为一个模板。
在这种情况下,您需要使用 urllib
请求文件,获取响应,然后使用 template.Template(content)
将其转换为模板对象。
但是,我必须说,我仍然认为将其保存在数据存储中是更好的选择。我不确定您为什么需要一个编辑器 - 为什么不直接将内容剪切并粘贴到 GAE 管理控制台中的字段中,或者使用远程 API 进行设置?
【讨论】:
【参考方案2】:当然,您可以从其他应用程序加载模板。要加载模板,您必须获取模板。
但是使用编辑器也不是很困难。我使用 codemirror 来编辑 HTML 文本区域。 请参阅此演示列表:http://codemirror.net/demo/
编辑 Jinja txt 邮件模板示例:
【讨论】:
以上是关于在 GAE 应用程序中加载外部模板?的主要内容,如果未能解决你的问题,请参考以下文章
如何在我的组件VUE 2(webpack)中加载外部js文件?
如何在 div 中加载外部 Angular 应用程序? [关闭]