1. 程式人生 > 實用技巧 >Django之重寫使用者表註冊介面(redis快取)

Django之重寫使用者表註冊介面(redis快取)

註冊介面

class RegisterView(APIView):
"""
使用者註冊, 許可權是: 匿名使用者可訪問
"""
# 自定義許可權類
permission_classes = (AllowAny,)

def post(self, request):
    """
    接收使用者名稱,密碼,手機號和驗證碼, 前端校驗兩遍一致性, 註冊成功後返回成功, 然後使用者自行登入獲取token
    1. 使用者名稱
    2. 密碼
    3. 手機號
    4. 驗證碼
    :param request:
    :return:  {'code':0,'msg':'註冊成功'}
    code: "260361"
    password: "123123"
    phone: "13303479527"
    username: "liangxuepeng"
    """
    username = request.data.get('username')
    phone = request.data.get('phone')
    code = request.data.get('code')
    passwrod = request.data.get('password')

    if all([username, passwrod, phone, code]):
        pass
    else:
        return Response({'code': 999, 'msg': '引數不全'})

    # rand_name = self.randomUsername()
    # 驗證手機驗證碼
    redis_client = get_redis_connection('verify_code')
    code_redis = redis_client.get(phone)
    if code_redis:
        code_redis = code_redis.decode()

    if not code == code_redis:
        return Response({'code': 999, 'msg': '手機驗證碼錯誤'})

    user = User(username=username, phone=phone)
    user.set_password(passwrod)
    user.save()

    return Response({'code': 0, 'msg': '註冊成功'})