본문 바로가기
웹/백엔드

[Django] Rest API 설정

by 보안매크로 2024. 6. 28.
728x90

 REST API를 구현하여 Flutter 앱에서 GET 요청을 보내면 특정 값을 반환하도록 설정할 수 있습니다. 이를 위해 Django REST framework (DRF)를 사용할 수 있습니다.

단계별 가이드

  1. Django REST framework 설치
    pip install djangorestframework
  2. 프로젝트 설정 업데이트 settings.py 파일에 rest_framework를 추가합니다.

    INSTALLED_APPS
    = [
        ...
        'rest_framework',
    ]
  3. 시리얼라이저 생성 Django 모델 데이터를 JSON 형태로 변환하기 위해 시리얼라이저를 만듭니다.
    # api/models.py
    from django.db import models

    class MyModel(models.Model):
        name = models.CharField(max_length=100)
        value = models.IntegerField()

        def __str__(self):
            return self.name


  4. 시리얼라이저를 만듭니다.
    # api/serializers.py
    from rest_framework import serializers
    from .models import MyModel

    class MyModelSerializer(serializers.ModelSerializer):
        class Meta:
            model = MyModel
            fields = ['id', 'name', 'value']

  5. 뷰셋 생성 DRF의 ViewSet을 사용하여 API 뷰를 만듭니다.
    # api/views.py
    from rest_framework import viewsets
    from .models import MyModel
    from .serializers import MyModelSerializer

    class MyModelViewSet(viewsets.ModelViewSet):
        queryset = MyModel.objects.all()
        serializer_class = MyModelSerializer

  6. URL 라우터 설정 라우터를 사용하여 URL을 설정합니다.
    # api/urls.py
    from django.urls import path, include
    from rest_framework.routers import DefaultRouter
    from .views import MyModelViewSet

    router = DefaultRouter()
    router.register(r'mymodel', MyModelViewSet)

    urlpatterns = [
        path('', include(router.urls)),
    ]

  7. 프로젝트 URL 설정 메인 URL 설정 파일에서 API URL을 포함시킵니다.
    # project/urls.py
    from django.contrib import admin
    from django.urls import path, include

    urlpatterns = [
        path('admin/', admin.site.urls),
        path('api/', include('api.urls')),
    ]

 

- 이제 admin 페이지에 접속하여, 데이터를 추가하고, 접속해보면 

 이런 식으로 데이터가 반환되는 것을 볼 수 있습니다.

728x90