django将json格式数据返回原型ajax

时间:2010-07-07 01:49:37

标签: django django-templates

有没有办法可以通过django HttpResponse传递json格式的数据。我试图通过原型ajax调用视图并返回json格式数据。

由于

2 个答案:

答案 0 :(得分:14)

您可以在app views.py

中执行类似的操作
    import json

    def ajax_handler(req, your_parameter):

        json_response = json.dumps(convert_data_to_json)

        return HttpResponse(json_response,mimetype='application/json')

答案 1 :(得分:6)

根据Lombo的回答,您可能希望使用request.is_ajax()方法。这将检查HTTP_X_REQUESTED_WITH标头是否为XmlHttpRequest。

这是一种避免向常规GET发送json响应的好方法 - 我认为最坏的情况只是让用户感到困惑,但也允许你对ajax与非ajax请求使用相同的视图。这种方法可以更轻松地构建degrade gracefully

的应用

例如:

def your_view(request):
    data_dict = # get some data

    if request.is_ajax():
        # return json data for ajax request
        return HttpResponse(json.dumps(data_dict),mimetype='application/json')

    # return a new page otherwise
    return render_to_response("your_template.html", data_dict)

此方法也适用于表单处理。