jquery解释django+ajax+json的数据

一、后台的视图的实现代码:


# ajax模糊查询接口
def ajax_data(request):
    if request.method == 'GET':
        # 获取模糊搜索关键词
        keyword = request.GET['keyword']
        if keyword:
            json_data = serializers.serialize("json", Wine.objects.filter(Q(cn_name__icontains=keyword)))
        else:
            json_data = serializers.serialize("json", Wine.objects.all())
        print json_data
        # 如果存在关键字
        return HttpResponse(json_data, content_type="application/json")
    else:
        return render_to_response("test.html")


二、模板实现代码:


        $(function () {
            {# 监听输入框的输入事件 #}
            $('#wine-name').keyup(function(){
{#              alert("输入框输入内容!");#}
                {# 获取输入框内容 #}
                var keyword = $(this).val();
                {# 发送AJAX请求到后台进行模糊查询,并把结果返回 #}
                $.get("{% url 'ajax' %}", {'keyword': keyword}, function(data){
                    {# 后台返回的是json数组 #}
                    alert(data[0].fields.cn_name);
                });
           });
        });


三、注意点:

    因为在后台使用django的序列化json的类,这个类序列化json是有一定的格式的,如下:

[{"fields": {"en_name": "faguoluwaerhedulinjiuzhuangpinlizhu", "uuid": "93349C44-D8BA-495E-A687-44AE3FAEA9A5", "country": "\u6cd5\u56fd", "num": 2, "cn_name": "\u6cd5\u56fd\u5362\u74e6\u5c14\u6cb3\u675c\u6797\u9152\u5e84\u54c1\u4e3d\u73e02009\u5e72\u7ea2\u8461\u8404\u9152", "type": "\u5e72\u7ea2"},

"model": "app.wine",

"pk": 2}]

    简单来说就是添加了一些键值,model是数据来源的model,pk是主键。在模板中解释json的时候,要先取得fields域,再取里面的值即可。比如:data[0].fields.uuid就是结果中的第一个元素中的uuid值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值