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

如何将变量传递给Flask中的资产,flask,jinja2,assets,Flask,Jinja2,Assets,我正在用Flask建立一个网站。 我还使用资产来管理我的js和css资源。 现在我想把一些变量传递给我的js脚本 下面是当flask init(\uuu init\uuuuuuu.py)启动时我注册资产的代码: 以下是我在模板文件(download.html)中使用资产的代码: 我想在js文件中使用变量“apps”,如下所示: return render_template("download.html", apps=apps, versions=versions) DownLoadSelect

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

下面是当flask init(\uuu init\uuuuuuu.py)启动时我注册资产的代码:

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

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

return render_template("download.html", apps=apps, versions=versions)
DownLoadSelector("appList", {{ apps }})

我该怎么做呢?

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

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

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

@WadeCong如果答案对你有效,请将其标记为正确或至少放弃投票(如果你希望得到更好的答案)。
DownLoadSelector("appList", {{ apps }})
{% assets "download_js" %}
    <script>
        window.apps = {{ apps }};
        require(["{{ ASSET_URL}}"]);
    </script>
{% endassets %}
DownLoadSelector("appList", window.apps)