Django REST FrameworkでBASIC認証

Created 2019年4月15日23:59
Updated 2019年4月16日0:01
Categories Django Python

思ったより簡単にできたのでメモ。

前提

ModelClass

class Post(models.Model):
    title = models.CharField(max_length=512)
    body = models.TextField(max_length=2048)
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)

Serializer

class PostSerializer(serializers.ModelSerializer):
    class Meta:
        model = Post
        fields = (
            'id',
            'title',
            'body',
            'created',
            'updated'
        )

BASIC認証をかける

View

from rest_framework.generics import RetrieveAPIView
from rest_framework.authentication import BasicAuthentication
from rest_framework import permissions


class RetrievePost(RetrieveAPIView):
    serializer_class = PostSerializer
    authentication_classes = (BasicAuthentication,)
    permission_classes = (permissions.IsAuthenticated,)

URL

urlpatterns = [
    path('post/retreive/<int:pk>', views.RetrievePost.as_view()),
]

requestsから取得

import requests


auth = ("username", "password")
response = requests.get("API_URL", auth=auth)
print(response.text)

コメントを投稿

コメント