[Django - RestFramework] 질문입니다!!


  • Level 2

    4f10e4e7-654a-4761-a56a-a19ac844bb03-image.png```

    <코드 첨부>

    
    
    from django.db import models
    
    ## 지역 테이블 (지역, 색상)
    class Area(models.Model):
        area = models.CharField(max_length=20) #지역 (ex. 춘천시)
        color = models.CharField(max_length=20) #색상 (ex. #fff, red)
    
        def __str__(self):
            return self.area
    
    ## 스토리 테이블 (사진, 제목, 작성자, 내용, 세부 지역, 색상)
    class Story(models.Model):
        image = models.ImageField(null=True) #사진 (= 사진 없음 허용)
        title = models.CharField(max_length=20) #글 제목
        writer = models.CharField(max_length=20) #글 작성자
        content = models.TextField(blank=True) #글 내용 (= 내용 없음 허용)
        detail_area = models.CharField(max_length=30) #세부 지역
        color = models.CharField(max_length=20) #색상
    
        def __str__(self):
            return '%d번 스토리' %(self.pk)
        
    ------------------------------------------------------------------------------
    ### django_cbv/cbv/serializers.py
    
    
    
    from rest_framework import serializers
    from .models import Area, Story
    
    
    class AreaSerializer(serializers.ModelSerializer):
        class Meta:
            model = Area
            fields = ('area', 'color')
    
    class StorySerializer(serializers.ModelSerializer):
        class Meta:
            model = Story
            fields = ('title','writer','content','detail_area','color',)
            
    ------------------------------------------------------------------------------
    ### django_cbv/cbv/views.py
    
    
    
    from rest_framework import viewsets
    from .serializers import AreaSerializer, StorySerializer
    from .models import Area, Story
    
    # Create your views here.
    class AreaViewSet(viewsets.ModelViewSet):
        queryset = Area.objects.all()
        serializer_class = AreaSerializer
    
        
    class StoryViewSet(viewsets.ModelViewSet):
        queryset = Story.objects.all()
        serializer_class = StorySerializer
        
    -------------------------------------------------------------------------------
    ### django_cbv/django_cbv/urls.py
    
    
    
    from django.urls import path, include
    from django.contrib import admin
    from rest_framework import routers
    from cbv.views import StoryViewSet, AreaViewSet
    
    
    router = routers.DefaultRouter()
    router.register('areas', AreaViewSet)
    router.register('storys', StoryViewSet)
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('', include(router.urls)),
    ]
    
    --------------------------------------------------------------------------------
    ### django_cbv/django_cbv/settings.py
    
    
    DEBUG = True
    
    ALLOWED_HOSTS = ['*']
    
    
    # Application definition
    
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'rest_framework',
        'cbv',
    ]
    
    REST_FRAMEWORK = {
        'DEFAULT_RENDERER_CLASSES': (
            'rest_framework.renderers.JSONRenderer',
        )
    }
    

    구글링하면서 코드를 맞게 짠 것 같은데, 서버를 작동시켜보면 rest-api 화면이 이런 식으로 출력됩니다.
    2d5ddf35-fc96-4d36-b673-15b1c4bd5c07-image.png
    0874d2ee-2906-40db-99b5-c526cd10be0a-image.png

  • Level 4

    @허태정 https://www.django-rest-framework.org/api-guide/renderers/
    이 문서 참고하시면 도움이 되실 것 같습니다!!

  • Level 4

    Settings.py 부분의 가장 아래에 REST_FRAMEWORK = { 여기서 Json Renderer로 설정을 하셨으므로 Json 형식의 반응이 오는 것입니다.

    저 부분을 지우시면 기본 값으로 Restframework에서 제공하는 이쁜 화면을 보실 수 있습니다.

ONLINE USERS

POPULAR TOPICS

SUGGESTED TOPICS