「Django」rest_framework学习系列-用户登录

用户POST登录-->后台验证用户名密码-->验证正确返回TOKEN-->验证错误返回错误信息

class UserAPI(APIView):
    #用户登录类
    def post(self,request,*args,**kwargs):
        ret = {'code': 200, 'msg': None}
        try:
        #取前台数据
            user = request._request.POST.get('username')
            pwd = request._request.POST.get('password')
        #验证数据
            obj = models.UserInfo.objects.filter(username=user,password=pwd).first()
            if not obj:
                ret['code']= 201
                ret['msg'] = '用户名或密码错误'    
            else:
                #为登录用户创建TOKEN
                token = md5(user)
                #存在就更新,不存在就创建,token表user对应的是userinfo表,这里user=obj
                models.UserToken.objects.update_or_create(user=obj,defaults={'token':token})
                ret['token'] = token
        except Exception as e:
            ret['code'] = 1001
            ret['msg'] = '请求异常'
        return JsonResponse(ret)
View Code

MD5生成方法:

import hashlib,time
def md5(user):
    #MD5生成
    ctime = str(time.time())
    m = hashlib.md5(bytes(user,encoding='utf-8'))
    m.update(bytes(ctime,encoding='utf-8'))
    return m.hexdigest()
View Code

 

转载于:https://www.cnblogs.com/wrxblog/p/10400094.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值