使用Djang将JSON数据传递到前端

2024-04-28 08:47:40 发布

您现在位置:Python中文网/ 问答频道 /正文

如果通常使用Django框架或Python,是否有方法将JSON对象传递到web模板的前端?

例如,如果我想发送一个有两个数组作为属性的对象(比如xvaluesyvalues),我如何能够使用JavaScript或jQuery执行Ajax调用来获取具有属性的对象?


Tags: 对象django方法框架模板webjson属性
1条回答
网友
1楼 · 发布于 2024-04-28 08:47:40

如果我理解正确,您需要在HTML输出中呈现一些JSON。

为此,请将json编码的对象从视图传递到模板:

views.py

import json

def myview(request):
    obj = {"a": 1, "b": 2}
    return render_to_response("template.html", {"obj_as_json": json.dumps(obj)})

template.html

<html>
    <head>
    <script type="text/javascript">
    var obj = {{ obj_as_json|safe }};
    </script>
    </head>
    ...
</html>

将呈现为:

...
<script type="text/javascript">
var obj = {"a": 1, "b": 2};
...

注意,json.dumps只适用于包含简单数据类型的字典。Django支持将模型对象序列化为json,使用:

from django.core import serializers
obj_as_json = serializers.serialize("json", my_model_object)

更新:请注意,您需要使用“安全”来获取以下信息:

  var obj = {"items": [{"human": "Genesis", "usfm": "GEN"},],}

而不是这个:

  var obj = {&quot;items&quot;: [{&quot;human&quot;: &quot;Genesis&quot;, &quot;usfm&quot;: &quot;GEN&quot;},],}

相关问题 更多 >