# 初步user detail api view

This commit is contained in:
xianfuxing 2018-07-18 21:18:23 +08:00
parent d6b1c4e81f
commit 09b08712b3
3 changed files with 25 additions and 5 deletions

View File

@ -1,8 +1,9 @@
from django.urls import path
from .views import UserLoginAPIView
from .views import UserLoginAPIView, UserDetailAPIView
app_name = 'users-api'
urlpatterns = [
path('login/', UserLoginAPIView.as_view(), name='login'),
path('info/', UserDetailAPIView.as_view(), name='info'),
]

View File

@ -1,10 +1,13 @@
from django.contrib.auth import get_user_model
from django.db.models import Q
from rest_framework import serializers
from rest_framework.response import Response
from rest_framework.status import HTTP_201_CREATED, HTTP_400_BAD_REQUEST
from rest_framework.status import HTTP_200_OK, HTTP_201_CREATED, HTTP_400_BAD_REQUEST
from rest_framework.views import APIView
from rest_framework.permissions import AllowAny
from .serializers import UserLoginSerializer
from rest_framework.generics import RetrieveAPIView
from rest_framework.permissions import AllowAny, IsAuthenticated
from rest_framework_jwt.serializers import VerifyJSONWebTokenSerializer
from .serializers import UserLoginSerializer, UserDetailSerializer
from django.contrib.auth.backends import ModelBackend
User = get_user_model()
@ -32,3 +35,19 @@ class UserLoginAPIView(APIView):
return Response(login_data, HTTP_201_CREATED)
else:
return Response(serializer.errors, HTTP_400_BAD_REQUEST)
class UserDetailAPIView(RetrieveAPIView):
serializer_class = UserDetailSerializer
permission_classes = [AllowAny]
def get(self, request, *args, **kwargs):
token = request.GET.get('token', None)
data = {'token': token}
try:
valid_data = VerifyJSONWebTokenSerializer().validate(data)
user = valid_data['user']
serializer = self.get_serializer(user)
return Response(serializer.data, HTTP_200_OK)
except serializers.ValidationError as v:
print("validation error", v)

View File

@ -140,7 +140,7 @@ STATIC_URL = '/static/'
REST_FRAMEWORK = {
'DEFAULT_RENDERER_CLASSES': (
'rest_framework.renderers.JSONRenderer',
# 'rest_framework.renderers.BrowsableAPIRenderer',
'rest_framework.renderers.BrowsableAPIRenderer',
),
# 'DEFAULT_PARSER_CLASSES': (
# 'rest_framework.parsers.JSONParser',