Django rest frame eworkはカスタム認証方式を使用しています.
Django rest frame eworkはカスタム認証方式を使用しています.
Djangoはカスタム認証方式を使って、「Djangoはカスタム認証方式を使用する」と紹介していますが、この記事はどうやって前のページの上でrest apiを提供しますか?
settings.pyのINSTALLEDを修正します.APPSは、‘login’アプリを追加します.
login apにserializers.pyファイルを追加します.
プロジェクトを実行してからアクセスします.http://localhost:8000/login/api/login
転載はリンク形式で本文の住所と本文の住所を明示してください.http://blog.csdn.net/kongxx/article/details/50538938
Djangoはカスタム認証方式を使って、「Djangoはカスタム認証方式を使用する」と紹介していますが、この記事はどうやって前のページの上でrest apiを提供しますか?
settings.pyのINSTALLEDを修正します.APPSは、‘login’アプリを追加します.
login apにserializers.pyファイルを追加します.
#coding:utf-8
from django.contrib.auth.models import User
from rest_framework import serializers
class LoginSerializer(serializers.ModelSerializer):
username = serializers.CharField(required=False, max_length=1024)
password = serializers.CharField(required=False, max_length=1024)
class Meta:
model = User
fields = ('id', 'username', 'password')
login appのview.pyファイルを修正します.#coding:utf-8
from rest_framework import generics, viewsets, mixins, status
from rest_framework.response import Response
from rest_framework.views import APIView
from .serializers import *
class LoginViewSet(APIView):
queryset = User.objects.all()
serializer_class = LoginSerializer
def post(self, request):
try:
username = request.data.get('username')
password = request.data.get('password')
user = User.objects.get(username__iexact=username)
if user.check_password(password):
print user
serializer = LoginSerializer({'id': user.id, 'username': user.username})
return Response(serializer.data)
return Response(status=status.HTTP_401_UNAUTHORIZED)
except User.DoesNotExist:
return Response(status=status.HTTP_401_UNAUTHORIZED)
login apにurls.pyファイルを追加します.from django.conf.urls import url, include
from rest_framework import routers
from .views import *
urlpatterns = [
url(r'^api/login$', LoginViewSet.as_view()),
]
project/urls.pyファイルを修正し、「login」アプリのurlプロファイルを追加します.urlpatterns = [
...
url(r'^login/', include('login.urls')),
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),
...
]
テストプロジェクトを実行してからアクセスします.http://localhost:8000/login/api/login
転載はリンク形式で本文の住所と本文の住所を明示してください.http://blog.csdn.net/kongxx/article/details/50538938