Javascript 如何使用python json作为treeview呈现模板?

Javascript 如何使用python json作为treeview呈现模板?,javascript,python,python-3.x,flask,jinja2,Javascript,Python,Python 3.x,Flask,Jinja2,我需要呈现一个html模板与烧瓶。 我有一个python的dict,我想在树视图中显示它。 我怎么做 我找到了这个资源: 那可能有用,但我不能用 dict_var = { "test3@test3.com": { "discord_id": 0, "status_key": False, "username": "test3@test3.com", "last_name": "aaaa", "gender":

我需要呈现一个html模板与烧瓶。 我有一个python的dict,我想在树视图中显示它。 我怎么做

我找到了这个资源: 那可能有用,但我不能用

dict_var = {
    "test3@test3.com": {
        "discord_id": 0,
        "status_key": False,
        "username": "test3@test3.com",
        "last_name": "aaaa",
        "gender": "male",
        "email": "test3@test3.com",
    },
    "test9@test9.com": {
        "username": "test9@test9.com",
        "last_name": "test9",
        "gender": "male",
        "discord_data": {
            "user": {
                "avatar": None,
                "discriminator": "111",
                "verified": True,
            },
            "connections": [],
            "guilds": [
                {
                    "icon": "hellohellohellohello.jpg",
                    "id": "222222222222",
                },
                {
                    "icon": None,
                    "id": "111111111",
                    "owner": True,
                }
            },
            "email": "hello@hello.com",
            "activation_key": "hello-hello-hello-hello-hello",
            "first_name": "hello@hello.com",
            "discord_id": 22222223333334444,
            "state": "IT"
        }
    }
渲染模板的flask函数

@app.route('/test')
def test():
   return render_template('test.html', res=dict_var)


test.html

...

<div class="container">
    <div id="tree"></div>

<script>
    $(function() {
  var mytree = JSON.parse('{{ res|safe }}');

  $('#tree').treeview({
    data: mytree
  });
});
</script>


...
。。。
$(函数(){
var mytree=JSON.parse('{res | safe}}');
$(“#树”).treeview({
资料来源:mytree
});
});
...

如何将res传递给js并将dict转换为treeview?

您可以使用
tojson

...


<div class="container">
    <div id="tree"></div>

<script>
    $(function() {
  var mytree = JSON.parse('{{ res|tojson }}');

  $('#tree').treeview({
    data: mytree
  });
});
</script>


...
。。。
$(函数(){
var mytree=JSON.parse('{res|tojson}}');
$(“#树”).treeview({
资料来源:mytree
});
});
...

your
json\u var
不是json,而是Python字典。(它可以很容易地转换为JSON和JSON,但您可能不需要这样做,特别是如果您已经将它作为模板变量传递了。)至于在模板中放入什么,这完全取决于您试图从该字典中显示什么信息,以及如何-您确实没有明确说明您想要什么。是的,我错了。我编辑代码。问题在哪里@RobinZigmondI不熟悉“treeview”-但我注意到的一件事是,由于您在
res
上调用
JSON.parse
,它实际上需要是JSON。为此,您需要将其作为
json.dumps(dict\u var)
@RobinZigmond传递给模板,因为它不起作用。但是不要提出错误,“它不起作用”不是很有帮助——我真的不知道你想做什么。(正如我所说,我以前从未遇到过这种“树视图”)但是,从快速浏览文档的角度看,似乎会说数据需要是一个数组,而您的数据是一个对象。