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值。

好的,我可以为您提供一些指导。 首先,您需要使用 Django 框架来搭建您的网站。您可以先安装 Django,然后创建一个新的 Django 项目。 接着,您可以创建一个注册和登录的应用。在这个应用中,您可以创建一个名为 `views.py` 的文件,用于处理用户注册和登录的请求。您可以使用 Django 自带的表单验证来验证用户输入的信息是否正确。 在用户注册时,您需要从前端页面获取用户输入的信息,并将其保存到数据库中。在用户登录时,您需要从前端获取用户输入的用户名和密码,并将其与数据库中的信息进行验证。 对于登录和注册,您可以使用 ajax 技术,从前端向后端发送异步请求来进行处理。在 `views.py` 中,您可以使用 Django 的 `JsonResponse` 对象来返回处理结果。 下面是一个简单的示例代码: ```python from django.shortcuts import render from django.http import JsonResponse from django.contrib.auth import authenticate, login, logout from django.contrib.auth.models import User def register(request): # 获取用户输入的信息 username = request.POST.get('username') password = request.POST.get('password') email = request.POST.get('email') # 创建新用户并保存到数据库中 user = User.objects.create_user(username=username, password=password, email=email) user.save() # 返回处理结果 return JsonResponse({'status': 'success'}) def login(request): # 获取用户输入的信息 username = request.POST.get('username') password = request.POST.get('password') # 验证用户名和密码是否正确 user = authenticate(request, username=username, password=password) if user is not None: # 登录成功 login(request, user) return JsonResponse({'status': 'success'}) else: # 登录失败 return JsonResponse({'status': 'fail'}) ``` 在前端页面中,您可以使用 jQuery 来向后端发送异步请求,并处理返回的结果。 下面是一个简单的示例代码: ```html <form id="register-form"> <input type="text" name="username"> <input type="password" name="password"> <input type="email" name="email"> <button type="submit">注册</button> </form> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script> $(document).ready(function() { $('#register-form').submit(function(event) { event.preventDefault(); var form_data = $(this).serialize(); $.ajax({ url: '/register/', type: 'POST', data: form_data, dataType: 'json', success: function(data) { if (data.status === 'success') { alert('注册成功'); } else { alert('注册失败'); } } }); }); }); </script> ``` 类似地,您可以创建一个登录的表单,并使用类似的方式进行处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值