본문 바로가기

Python/REST Framework4

[Django-REST] Exception Handler RestFramework에서 자동으로 API 함수에서 Exception이 발생하면 Exception Handler에서 처리할 수 있도록 settings에서 조건을 줄 수 있다. 보통 코드에서 exception을 처리하기 위해서 try ~ exception을 사용한다. try: ... code detail except Exception as e: print(e) return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR) 하지만, 위와 같은 코드로 작성하면 코드의 복잡도가 높아지고 reading이 힘들어진다.Custom exception handlingDjango RestFramework에서는 Exception Handler를 settings에서 자동으로 .. 2016. 10. 19.
[REST] Serializer fields Serializerserializer는 querysets과 model instances와 같은 복잡한 데이터를 JSON, XML, 또는 다른 타입으로 Python 데이터 타입이 쉽게 rendering될 수 있게 한다. 또한, serislizers는 deserializer(데이터를 복잡한 타입으로 다시 파싱하는 것)와 들어온 데이터를 validation 체크를 한다. REST framework의 serializer는 Django의 Form 과 ModelForm과 유사하다고 한다. Serializer는 가장 기본적인 방식으로 응답 결과를 컨트롤하고 ModelSerializer는 model instances와 querysets을 다루는데 이용된다.serializer의 사용법 및 종류에는 여러가지가 있으므로 D.. 2016. 10. 11.
[REST] Nested relationships Nested relationshipsNested relationsips는 serializers 자체를 serializer 필드로써 사용하는 방법이다.만약, serializer를 리스트 파라미터로 받고 싶은 경우, 필드를 추가할 때 many=True를 추가하면 된다.Example: class TrackSerializer(serializers.ModelSerializer): class Meta: model = Track fields = ('order', 'title', 'duration') class AlbumSerializer(serializers.ModelSerializer): tracks = TrackSerializer(many=True, read_only=True) class Meta: model =.. 2016. 10. 11.
[REST Framework] extra()를 사용한 AS serializer 필드 등록 이 페이지는 Django, REST Framework의 Class based API인 ViewSet을 사용하는 것을 기반으로 설명하고 있습니다. 장고 모델에 있는 컬럼을 AS 를 이용하여 다른 변수를 추가하여 표현하고 싶을 때, 장고의 extra()를 사용하면 SQL의 AS로 치환된다. SELECT SUBSTRING(da_date, 1, 4) AS year, da_date FROM test_table; 위와 같이 da_date라는 컬럼의 값을 substring()을 이용하여 year라는 값을 추가하고 싶다. 이럴 경우, queryset의 extra()함수를 사용하면 된다.views.py TestTable.objects.all().extra( select={'year':'SUBSTRING(da_date, .. 2016. 10. 10.