zoukankan      html  css  js  c++  java
  • Django API view 登录认证

    文件分类

    url

    from django.contrib import admin
    from django.urls import path, re_path
    from django.urls import include
    
    urlpatterns = [
        re_path('^api/(?P<version>[v1|v2]w+)/', include('app01.urls')),
    ]
    from django.urls import path, re_path
    from django.urls import include
    from app01.views import account, coursehost, newspapers
    
    
    urlpatterns = [
        re_path('login/$', account.LoginView.as_view()),
    ]

    view

    """
    * coding: utf-8
    
    CreateTime:2019/12/17
    Version: v1
    DocName: account.py
    Edit: Riven
    Effect: Control the user  login
    SourceStorageLocation: RivenShop / app01 / views / account.py
    Modify and add function record:
            ModifyTime:
                1.
                2.
            Add function Time :
                1.
                2.
    
    """
    
    from app01.models import *
    from utils.response import *
    
    import uuid
    from rest_framework.views import APIView
    from rest_framework.response import Response
    
    
    class LoginView(APIView):
        """
        Interface for user authentication
        """
    
        def post(self, request, *args, **kwargs):
            """
            Authentification of user
            :param request: request correlation data
            :param args: URL transmit args
            :param kwargs: URL transmit kwargs
            """
    
            # acquire status object
            ret = TokenResponse()
            try:
                user = request.data.get('user')
                pwd = request.data.get('pwd')
                user = Account.objects.filter(username=user, password=pwd).first()
                if not user:
                    ret.code = 1001
                    ret.error = '用户名密码错误'
                else:
                    uid = str(uuid.uuid4())
                    UserAuthToken.objects.update_or_create(user=user, defaults={'token': uid})
                    ret.token = uid
    
            except Exception as e:
                ret.code = 1003
    
            # ret.dict == return class init attr of dict
            return Response(ret.dict)

     

    自定义状态码类:

    """
    * coding: utf-8
    
    CreateTime:2019/12/17
    Version: v1
    DocName: response.py
    Edit: Riven
    
    Effect: create status code  return view
    
    SourceStorageLocation: RivenShop / utils / response.py
    
    Modify and add function record:
            ModifyTime:
                1.
                2.
            Add function Time :
                1.
                2.
    
    """
    
    
    class BaseResponse(object):
    
        def __init__(self):
            self.code = 1000
            self.data = None
            self.error = None
    
        @property
        def dict(self):
            return self.__dict__
    
    
    class TokenResponse(BaseResponse):
        def __init__(self):
            super(BaseResponse).__init__()
            self.code = 1000
            self.token = None
  • 相关阅读:
    jquery中的 deferred之 deferred对象 (一)
    javascript函数嵌套时arguments的问题
    Jquery中的 Deferred分析
    Javascript面试题收集
    jquery中的callbacks之我见
    javascript正则表达式中 (?=exp)、(?<=exp)、(?!exp)
    javascript中正则表达式中的 match,exec,test,replace 之我理解
    删除域帐户/网络帐号密码 重新登录域服务器
    jQuery.extend 与 jQuery.fn.extend
    HttpMessageConvert
  • 原文地址:https://www.cnblogs.com/Rivend/p/12055315.html
Copyright © 2011-2022 走看看