Django中怎么利用jquery完成ajax的验证和数据提交

本文介绍了一个使用Django实现的简单AJAX用户名验证系统。该系统通过前端输入用户名,并发送AJAX请求到后端进行验证,后端检查数据库中是否存在相同用户名,然后返回结果给前端显示。文章详细展示了HTML、JavaScript代码及Django视图函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">

    <title>Document</title>

<script src="{%static 'js/jquery-1.11.3.js'%}"></script>
<script src="{%static 'js/login_.js'%}"></script>

</head>
<body>
    <form action="" method="post">

        <input type="text" placeholder="请输入用户名" name="uname">

        <sapn id="show-name"></span>

    </form>    
</body>

</html>

# 此部分为加载的login.js

$(function(){

    $("[name='uname']").click(function(){

        var username = $(this).val();

        if(username==""){

            $("show-name").html("用户名不能为空");

            return;

        }$.ajax({

            url:"/index/test/",

            data:{"username":username, "type":"自定义名称,以便处理对应的ajax"},

            type:"type",

            dataType:"json",

            async:"true",

            success:function(data,status,xhr){

                console.log("成功获取服务器响应");

                msg = data.msg;

                if(msg=="ok"){

               $("show-name").html("用户名可以使用");     

            } else{

                $("show-name").html("用户名已存在"); }     

        },

           error:function(xhr,status,error){

                console.log(error);

                console.log(status);

}

        })

    })

})


# 需要在django中对应函数上加上

# 必须导入下面的csrf_exempt ,不然会出现403错误

from django.views.decorators.csrf import csrf_exempt

import json

# 这是视图处理的函数

@csrf_exempt
def test_views(request):
    type = request.POST.get('type')
    if type == 'hasuser':# 这是ajax中自定义的type类型,以便自己好对应处理
        username = request.POST.get('username', None)
        print("username------->", username)
        if username:
            count = User.objects.filter(uname=username).count()
            if count > 0:
                result = dict(msg='no_ok')
            else:
                result = dict(msg='ok')
            # 必须要返回一个json字符串给ajax
            return HttpResponse(json.dumps(result))





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值