FrameWork/Django23 Pagination django는 기본적으로 pagenation을 제공한다. 그래서 다른 프레임워크에 비해 페이지네이션을 쉽게 구현 가능하다. [** pagination **]1개의 room에는 여러개의 review가 달릴 수 있음이것을 모두 조회하게 되면 1000개, 10000개의 리뷰가 한꺼번에 조회 될 것임이것은 db에 많은 부하를 줌페이지네이션을 적용해 db부하를 줄이고 효율적으로 데이터를 볼 수 있도록 함django는 request시 url의 parameter를 알 수 있도록 query_params메서드를 제공#---------- rooms/views.pyclass RoomReviews(APIView): def get_object(self, room_pk): try: .. 2024. 7. 21. DB transaction Django에서는 기본적으로 데이터는 db에 바로 저장된다.이를 위해 transaction을 제공한다. [** transaction **]True가 되지 않으면 전 상태로 되돌리는것with transactions.atomic() 아래 입력되는 코드가 모두 true가 되야 저장됨with transactions.atomic(): 2024. 7. 20. DRF Serializer Serializer는 아래와 같은 용도로 사용됐다.get: 조회할 필드를 정하는 스키마의 역할post, put: 생성이나 수정할때 입력받을 formvalidation: 데이터 유효성 검사그냥 serializer를 사용할 경우, model에서 필드를 정의할때 입력한 부분들을 다시 입력해야 하는 번거러움이 있다. 또한, create, update매서드를 직접 만들어야 한다. 이를 해결하기 위해 ModelSerializer를 사용한다. [** ModelSerializer **]그냥 serializer를 사용할 경우, model에서 필드를 정의할때 입력한 부분들을 다시 입력해야 하는 번거러움 존재또한, create, update매서드를 직접 만들어야 함model의 필드를 자동으로 가져옴validator를 .. 2024. 7. 18. DRF APIView 앞서 Django Rest Framework를 통해 GET, POST, PUT, DELETE를 다뤘다.모두 함수를 만들어 진행했고, @api_view 데코레이터를 통해 request method를 적용시켰다.함수 안에 if, else등과 같은 코드들이 많이 들어감을 알 수 있었다. 이것을 좀 더 보기 좋게 구조화 시키기 위해 APIView를 활용해 클래스화 한다. [** APIView **]django.rest_framework.APIView 를 상속클래스 안에 request method에 해당하는 함수들을 만듬세부적인 변수가 필요할 경우에는 get_object()함수를 만들어 적용(관습)#---------- categories/views.py 변경 전@api_view(['GET', 'PUT', 'DE.. 2024. 7. 18. 이전 1 2 3 4 5 6 다음