文件分类

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