目录
drf 认证组件
登录接口
views
from rest_framework.viewsets import ViewSet
from rest_framework.decorators import action
from .models import User,UserToken
from rest_framework.response import Response
import uuid
class UserView(ViewSet):
@action(methods=['POST'],detail=False)
def login(self,request):
username = request.data.get('username')
password = request.data.get('password')
user = User.objects.filter(username=username).first()
if user:
# 如果存在生成一个人随机字符串
token = uuid.uuid4()
UserToken.objects.update_or_create(user=user,defaults={'token':token})
return Response({'code': '100', 'msg': '登陆成功','token':token})
else:
return Response({'code':'101','msg':'用户名或密码错误'})
models
from django.db import models
# Create your models here.
class User(models.Model):
username = models.CharField(max_length=32)
password = models.CharField(max_length=32)
user_token = models.OneToOneField(to='UserToken',on_delete=models.CASCADE,null=True)
class UserToken(models.Model):
token = models.CharField(max_length=32)
urls
from django.contrib import admin
from django.urls import path,include
from rest_framework.routers import SimpleRouter
from app01 import views
router = SimpleRouter()
router.register('user',views.UserView,'user')
from app01 import views
urlpatterns = [
path('admin/', admin.site.urls),
path('api/v1/',include(router.urls))
]
标签:username,models,rest,认证,token,user,组件,import,def
From: https://www.cnblogs.com/LiaJi/p/17096638.html