加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ajax 的登录认证

发布时间:2020-12-16 02:59:45 所属栏目:百科 来源:网络整理
导读:在models中 先创建一个表? from django.db import models # Create your models here. class UserInfo(models.Model): username = models.CharField(max_length=32,unique= True) password = models.CharField(max_length=32,unique=True) 在setting的文件中

在models中 先创建一个表?

from django.db import models

# Create your models here.
class UserInfo(models.Model):
    username = models.CharField(max_length=32,unique=True)
    password = models.CharField(max_length=32,unique=True)

在setting的文件中的最后一行 配置静态地址

STATICFILES_DIRS=[os.path.join(BASE_DIR,"static")]

在Python Console中用ORM创建一条测试用的用户名和密码,也可以直接在数据库中添加

from app01.models import UserInfo
UserInfo.objects.create(username="wang",password="wang")

开始写html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="/static/js/jquery-3.3.js"></script>
</head>
<body>
<form action="">
    用户名<input type="text" id="user">
    密码<input type="password" id="pwd">
    <input type="submit" value="提交" id="login_btn"><span class="error"></span>
    {% csrf_token %}
</form>

<script>
    $("#login_btn").click(function(){
        //发送Ajax请求登录认证
        $.ajax({
            url:"/login/",type:"post",data:{
                user:$("#user").val(),pwd:$("#pwd").val(),csrfmiddlewaretoken:$("[name=‘csrfmiddlewaretoken‘]").val()
            },success:function(res){
                var res=JSON.parse(res); //反序列化数据  把字符串转换成支持的类型
                console.log(res);

                if (res.user){
                    // 登录成功
                    location.href="/index/"
                }else{
                    //登录失败
                    $(".error").html(res.error).css("color","red");
                    setTimeout(function(){
                        $(".error").html("")
                    },2000)
                }

            }
        })
    })

</script>

</body>
</html>

views视图

from django.shortcuts import render,HttpResponse,redirect
from app01.models import UserInfo


# ajax的用户登录
def login(request):
    if request.method == "POST":
        user = request.POST.get("user")
        pwd = request.POST.get("pwd")

        res = {"user": None,"error": ""}
        user_obj = UserInfo.objects.filter(username=user,password=pwd).first()
        print("user_obj:",user_obj)

        if user_obj:
            res["user"]=user_obj.username
        else:
            res["error"]="用户名和密码不一致"
        return HttpResponse(json.dumps(res))
    return render(request,"login.html")

def index(request):
    return render(request,"index.html")

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读