将js变量传递给Ckan中的Jinja模板

时间:2018-09-25 16:02:50

标签: python jinja2 ckan

我想将javascript变量值传递给jinja2模板以根据某些用户请求查询db。我可以将用户请求存储在js变量中,但不能将变量值传递给jinja。您有任何想法或示例吗?我使用ckan项目,所以我必须使用Jinja模板。我进行了一些研究,也许我必须使用ajax请求,但是据我所知,我如何知道哪个功能将在后端运行?据我所知ckan在后端使用pyloans框架。在pyloans框架中。您有示例吗?

1 个答案:

答案 0 :(得分:0)

这与@ E.Serra has already pointed out一样是不可能的:Jinja模板在服务器上执行,而JavaScript随后在浏览器中执行。

因此,您可以

  • 在首次加载页面时计算所需的内容,并将其包含在Jinja模板中。为此,您将实现ITemplateHelpers接口并实现一个自定义帮助器函数,然后可以从模板调用该函数。
  • 在页面加载后异步计算所需的内容。为此,您可以将来自JavaScript的Web请求发送到CKAN API端点。如果existing API functions都不提供所需的内容,则可以使用IActions界面添加自己的内容。