
ViewSet 클래스는 read 또는 update 같은 opertaions만 지원하고 get 또는 put 같은 메소드 핸들러를 지원하지 않는 점을 제외하고는 View와 거의 똑같다. ViewSet 클래스는 일반적으로 ViewSet이 view들의 세트 안으로 instantiated되지는 마지막 단계, 즉 Router 클래스가 복잡하게 정의된 URL 설정을 핸들링하기위해 사용되어지는 순간 메소드 핸들러의 세트를 bound 한다. from rest_framework import viewsets class UserViewSet(viewsets.ReadOnlyModelViewSet): """ This viewset automatically provides `list` and `detail` actions. """..

Creating an endpoint for the root of our API # views.py from rest_framework.decorators import api_view from rest_framework.response import Response from rest_framework.reverse import reverse @api_view(['GET']) def api_root(request, format=None): return Response({ 'users': reverse('user-list', request=request, format=format), 'snippets': reverse('snippet-list', request=request, format=format) }) ..

Adding information to our model from django.db import models from pygments.lexers import get_all_lexers, get_lexer_by_name from pygments.styles import get_all_styles from pygments.formatters.html import HtmlFormatter from pygments import highlight LEXERS = [item for item in get_all_lexers() if item[1]] LANGUAGE_CHOICES = sorted([(item[1][0], item[0]) for item in LEXERS]) STYLE_CHOICES = sorted([..
Regular Django views from django.http import HttpResponse, JsonResponse from django.views.decorators.csrf import csrf_exempt from rest_framework.parsers import JSONParser from .models import Snippet from .serializers import SnippetSerializer @csrf_exempt def snippet_list(request): """ List all code snippets, or create a new snippet """ if request.method == 'GET': snippets = Snippet.objects.all()..
from rest_framework import serializers from snippets.models import Snippet, LANGUAGE_CHOICES, STYLE_CHOICES class SnippetSerializer(serializers.Serializer): id = serializers.IntegerField(read_only=True) title = serializers.CharField(required=False, allow_blank=True, max_length=100) code = serializers.CharField(style={'base_template': 'textarea.html'}) linenos = serializers.BooleanField(required=..
$ pip install django-filter # settings.py REST_FRAMEWORK = { 'DEFAULT_FILTER_BACKENDS': ( 'django_filters.rest_framework.DjangoFilterBackend', 'rest_framework.filters.SearchFilter', 'rest_framework.filters.OrderingFilter', ), } DEFAULT_FILTER_BACKENDS rest_framework.filters.BaseFilterBackend: 필드 필터링 기능을 제공. 앞서 설치한 django-filter 패키지를 사용. 필터링할 수 있는 필드 세트를 지정하거나 좀 더 사용자 정의된 설정이 들어간 rest_framework.f..
인증체계? request.user: 사용자 모델 인스턴스. django.contrib.auth.User requet.auth: 인증 토큰과 같은 추가 인증 정보 Django Rest Framwork는 rest_framework.authentication 모듈에서 다음 세 가지 인증 클래스를 제공. 모두 BaseAuthentication 클래스의 서브 클래스. BasicAuthentication: 사용자 이름과 암호에 대한 HTTP 기본 인증을 제공한다. 제품으로 사용하는 경우에는 API가 HTTPS에서만 사용 가능해야 한다. SessionAuthentication: 인증을 위해 장고의 세션 프레임워크와 함께 작동 TokenAuthentication: 간단한 토큰 기반 인증을 제공. 요청에는 토큰의 접두어..
Django Rest Framework는 serialize를 위해 2단계 과정을 사용 serializer는 모델 인스턴스와 파이썬 primitive 사이의 중개자다. parser와 renderer는 파이썬 primitive와 HTTP 요청과 응답 사이의 중개자로 처리한다. rest_framework.serializers.Serializer 클래스의 서브 클래스를 생성해 직렬화와 역직렬화를 관리하기 위한 필드와 필요 메서드를 선언함으로써 모델 인스턴스와 파이썬 primitive 사이의 중개자를 구성할 것이다.
2019/07/22 - [Django] - REST API 구현하기 불러오는 중입니다... 최신 자바스크립트 프레임워크 https://reactjs.org/ React – A JavaScript library for building user interfaces A JavaScript library for building user interfaces reactjs.org http://angularjs.org AngularJS — Superheroic JavaScript MVW Framework document.createElement('tabs'); document.createElement('pane'); document.createElement('ng-pluralize'); Your angularjs.o..
2019/07/22 - [Django] - REST API 이용하기 불러오는 중입니다... HTTP Method 요청 목적 HTTP Method SQL 새로운 리소스 생성 POSTa INSERT 리소스 읽기 GET SELECT 리소스의 메타데이터 요청 HEAD 리소스 데이터 업데이트 PUT UPDATE 리소스의 부분 변경 PATCH UPDATE 리소스 삭제 DELETE DELETE 특정 URL에 대해 지원되는 HTTP 메서드 출력 OPTIONS 요청(requests)에 대한 반환 에코 TRACE TCP/IP 터널링(일반적으로 구현되어 있지는 않음) CONNECT read-only API만 구현하다면 GET method만 구현 read-write API를 구현한다면 최소한 POST 메서드는 구현해야 하며 ..