python - 如何在Django中获取令牌和用户名
问题描述
当我使用 API 时,我在 django 中使用 auth API 获得令牌,就像我在 django 中使用 createsuperuser 创建我的用户名和密码一样
http://127.0.0.1:8000/auth/ [POST METHOD]
令牌
{
"token": "5f8ceaaaeef845bef8474e28192a174d3214124"
}
我想要我的令牌响应
{
"username":"Gem",
"token": "5f8ceaaaeef845bef8474e28192a174d3214124"
}
怎么变成这样?
我的 Views.py 代码
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = {'id', 'username', 'password'}
extra_kwargs = { 'password':{'write_only': True, 'required': True} }
from django.shortcuts import render
from backendPractices.models import Enquiry, EnquiryUtil
from backendPractices.serialize import Users
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status, permissions
from rest_framework.decorators import api_view, permission_classes
from datetime import datetime
from rest_framework.authentication import TokenAuthentication
from rest_framework.permissions import IsAuthenticated, AllowAny
import json
@api_view(['GET'])
def index(request):
date = datetime.now().strftime("%d/%m/%Y %H:%M:%S")
message = "clock in server "
return Response (data = message + date, status = status.HTTP_200_OK)
class Crud(APIView):
# get all
def get(self, request):
UsersData = Enquiry.objects.all().order_by('dateBooked')
Obj = Users(UsersData, many=True)
responsedata = Obj.data
return Response(responsedata)
序列化程序.py
from rest_framework import serializers
from backendPractices.models import Enquiry
from django.contrib.auth.models import User
from rest_framework.authtoken.models import Token
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = {'id', 'username', 'password'}
extra_kwargs = { 'password':{'write_only': True, 'required': True} }
class Users(serializers.ModelSerializer):
class Meta:
model = Enquiry
fields = "__all__"
解决方案
推荐阅读
- visual-studio-code - 与调试器一起运行 Browsersync
- arrays - 如何检查 groovy 列表中的所有或任何元素是否满足条件
- python - 通过进程队列传递动态创建的 multiprocess.Event()
- mysql - 如何在子查询中使用第一个查询的结果
- r - 无法在 Mac 上使用 fileInput 上传多个文件
- python - 使用 Python 的 Excel
- c++ - std::map::merge 的计算时间复杂度
- git - IntelliJ - 尝试将功能分支推送到另一个分支时出现推送失败错误
- php - $this->encryption->decrypt($text) 返回布尔值
- bash - 检查git远程是否可达