UnisKB/apps/users/api/login.py

65 lines
1.6 KiB
Python
Raw Normal View History

2025-04-14 12:11:23 +00:00
# coding=utf-8
"""
@project: MaxKB
@Author虎虎
@file login.py
@date2025/4/14 10:30
@desc:
"""
from drf_spectacular.types import OpenApiTypes
from drf_spectacular.utils import OpenApiParameter
2025-04-14 12:11:23 +00:00
from common.mixins.api_mixin import APIMixin
from common.result import ResultSerializer
2025-04-17 11:16:54 +00:00
from users.serializers.login import LoginResponse, LoginRequest, CaptchaResponse
2025-04-14 12:11:23 +00:00
class ApiLoginResponse(ResultSerializer):
def get_data(self):
return LoginResponse()
"""
Request 和Response 都可以使用此方法
使用serializers.Serializer
class LoginRequest(serializers.Serializer):
username = serializers.CharField(required=True, max_length=64, help_text=_("Username"), label=_("Username"))
password = serializers.CharField(required=True, max_length=128, label=_("Password"))
使用serializers.ModelSerializer Request不要使用serializers.ModelSerializer的方式
class LoginRequest(serializers.ModelSerializer):
class Meta:
model = User
fields = ['username', 'password']
"""
class LoginAPI(APIMixin):
@staticmethod
def get_request():
return LoginRequest
@staticmethod
def get_response():
return ApiLoginResponse
2025-04-17 11:16:54 +00:00
@staticmethod
def get_parameters():
return [OpenApiParameter(
name="code",
type=OpenApiTypes.STR,
location=OpenApiParameter.PATH,
required=True,
)]
2025-04-17 11:16:54 +00:00
class ApiCaptchaResponse(ResultSerializer):
def get_data(self):
return CaptchaResponse()
class CaptchaAPI(APIMixin):
@staticmethod
def get_response():
return ApiCaptchaResponse