如何将变量传递给Flask中的资源

时间:2014-02-12 16:06:26

标签: flask jinja2 assets

我正在使用Flask构建一个网站。 我还使用资产来管理我的js和css资源。 现在我想将一些变量传递给我的js脚本。

这是我在第一次烧瓶时注册资产的代码(__ init __。py):

download_js = Bundle("applog/download.coffee", filters=["jinja2", "coffeescript"],
                 output="gen/js/download.js")
assets.register("download_js", download_js)

这是我在模板文件中使用资产的代码(download.html):

{% assets "download_js" %}
    <script>
        require(["{{ ASSET_URL}}"]);
    </script>
{% endassets %}

并在视图文件(“view.py”)中,我传递了这样的varibales:

return render_template("download.html", apps=apps, versions=versions)

我想在js文件中使用变量“apps”,如下所示:

DownLoadSelector("appList", {{ apps }})

我该怎么做?

1 个答案:

答案 0 :(得分:1)

您的资产是静态的,您无法轻松更改它。您可以为webassets添加过滤器,但这是一个奇怪的黑客。

要做你想做的事,你可以做到:

{% assets "download_js" %}
    <script>
        window.apps = {{ apps }};
        require(["{{ ASSET_URL}}"]);
    </script>
{% endassets %}

在您的代码中,您只需致电apps

DownLoadSelector("appList", window.apps)