api 모드 : http://127.0.0.1:8000/users/?format=apijson 모드 : http://127.0.0.1:8000/users/?format=jsonbrowser에서 요청 : api 모드 (=Browsable API)clie
DjangoModelPermissionsOrAnonReadOnly 로그인한 유저에 대해서 CRUD가 모두 가능 로그인하지 않은 유저(AnonymousUser)에 대해서는 Read만 가능 해당 클래스를 Comment 처리하면 DRF의 Default Permission
공통users/ GET(list)users/ POST(create)users/pk/ GET(retrieve)users/pk/ PUT(update)users/pk/ DELETE(destroy)users/pk/ PATCH(partial_update)DefaultRouter
https://www.django-rest-framework.org/https://www.cdrf.co/http://ccbv.co.uk/API Guide : DRF의 메인 기능들View와 관련된 내용 : Views, Generic views,
urls.pyviews.pyserializers.pyviewsets를 사용하면 따로 CRUD를 구현할 필요 없이 한꺼번에 제공됨하지만 그 내부에서 커스터마이징하여 사용하기가 까다로움커스터마이징하여 사용하려면 Generic View를 사용하는 것이 유리!Generic V
PostListAPIViewPostRetrieveAPIView→ PostRetrieveAPIView는 Post에 대한 더 많은 정보를 담아서 내보내야 하므로, Serializer를 분리할 필요가 있음!views.pyserializers.py여기도 마찬가지로 partia
템플릿 장고 URL : /api/like/99GET 메서드로 구현되었음DRF 장고 URL : /api2/post/99/like/Post 테이블 내에 like 컬럼이 존재하여, 특정 레코드에 대한 like 컬럼의 값을 1 증가시키는 기능!여러 컬럼에 접근하는 것이 아니라
TODO: 이처럼 pk값이 아니라 각 제목이 Response되도록 Serializer를 설정하기!간단한 Serializer의 경우from api2.serializers import \*CommentSerializer() CommentSerializer():
RetrieveAPIView READ 오퍼레이션 수행 CreateAPIView WRITE 오퍼레이션 수행
실제 응답값 확인(chrome 개발자도구)TODO : CateTagSerializer를 meta class를 이용하여 정의하는 것이 아니라, 필드를 직접 정의하여 코딩출력 포맷 예시그에 대응하는 serializer 형식 예시key를 필드명으로 함(name, age)오른
/api/like/99/ : GET 메서드/api2/post/99/like/ : PATCH 메서드특징사용자가 입력하는 데이터가 없음ex) 사용자가 click만하면 like 컬럼이 1 증가하는 기능Read(직렬화)GET 요청흐름 : instance → dict → byt
출력 결과 출력 결과 1) pageCnt, curPage 없음 -> 생성 필요!2) category가 pk값으로 나오고 있음 -> name으로 변경 필요!3) image url 포맷이 다름!DRF에서 제공하는 pagination들 (링크)PageNumberPagin
Target : /api/post/1 출력 형식 Nested Serializer로 표현 가능! post -> Post 모델에 관한 serializer 사용 prevPost, nextPost : Post 모델에 관한 serializre를 사용하지만 'id'와 'tit
Django Shell로 확인category와 tags가 PrimaryKeyRelatedField로 잡혀있기 때문에 출력시 pk로 나오는 것! category는 ForeignKey 필드tags는 ManyToManyField 필드ForeignKey필드와 ManyToMan