from django.db import models
from django.contrib.auth.models import AbstractUser
# Create your models here.classuser(AbstractUser):
fuckid = models.CharField(max_length=30)
views.py
from django.contrib.auth import authenticate
from django.shortcuts import render
from rest_framework import authentication, permissions
from rest_framework.authtoken.models import Token
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from rest_framework.views import APIView
from rest_framework.decorators import permission_classes
from myapp.models import user
classuserViews(APIView):"""
View to list all users in the system.
* Requires token authentication.
* Only admin users are able to access this view.
"""
authentication_classes =[
authentication.TokenAuthentication,]defpost(self, request,format=None):"""
login
"""
username = request.POST["username"]
password = request.POST["password"]
m_user = authenticate(request, username=username, password=password)
m_user2 = user.objects.filter(id=1)print("user1 = {} : user2 = {}".format(m_user, m_user2[0]))if user isnotNone:
token, created = Token.objects.get_or_create(user=m_user2[0])return Response("Authorization: Token {}".format(token.key))else:# Return an 'invalid login' error message.return Response("fail")defget(self, request,format=None):"""
get user info
"""return Response("当前用户 : {}".format(request.user.username))# @permission_classes([permissions.IsAuthenticated])defdelete(self, request,format=None):"""
logout
"""
username = request.user.username
Token.objects.filter(user=request.user).delete()return Response("已经登出用户 : {}".format(username))
urls.py
"""myproject URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/4.1/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: path('', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""from django.contrib import admin
from django.urls import path
from myapp.views import userViews
from rest_framework.authtoken import views
urlpatterns =[
path("admin/", admin.site.urls),
path("user/", userViews.as_view(), name="user"),
path("api-token-auth/", views.obtain_auth_token),]