웹 개발/Django 3

[DRF] custom exceptionHandler

1. Custom Exception Handler - API의 에러 응답 스타일을 내 마음대로 바꾸어 사용하도록 하는 기능입니다. DRF는 아래와 같이 에러 응답을 보여 줍니다. { "detail" : "error message" } error message 에 status_code 등을 추가하여 보여 주고 싶을 때 커스텀하여 보여줄 수 있는 기능이 Custom Exception Handler 입니다! 2. Custom Exception Handler 사용하기 먼저, 파일을 하나 만든 후 (utils.py) 문서에 있는 코드를 복사 붙여넣기 하였습니다. from rest_framework.views import exception_handler def custom_exception_handler(exc, ..

웹 개발/Django 2021.12.23

django ORM > SQL 질의문 확인 방법

django ORM이 실제 SQL 질의문을 확인하는 방법 장고 ORM이 실행하는 질의문 또는 작성한 코드에 대응하는 SQL질의문이 확인하고 싶을 때가 있습니다. SQL질의문을 구하고 싶은 queryset.query의 str을 확인하면됩니다! User 라는 모델이 있을 때, 모델의 모든 행을 데이터베이스에서 읽어오려면 User.objects.all()과 같은 코드를 작성합니다. 이렇게 구한 쿼리셋의 str(queryset.query)를 확인하여 SQL 질의문을 살펴봅시다. >>> queryset = User.objects.all() >>> str(queryset.query) SELECT 'users'.'id', 'users'.'nickname', 'users'.'password', 'users'.'emai..

웹 개발/Django 2021.05.03

Django orm

Select Get 단일 행 결과를 반환하는 model.objects.get()은 Query Set이 아닌 단일행(모델타입)으로 출력됩니다. value_name.column_name과 같이 . 으로 컬럼 이름을 써서 사용합니다. get()안에 조건을 제시하여 사용합니다. (sql의 where절과 동일하게 사용) get()은 단일행을 반환하므로 다른 method들을 get() 다음에 연결하여 사용할 수 없습니다. value = model.objects.get(pk=pk) print(value.name) 만약 get을 사용하여 반환되는 값이 1개 이상인 경우 에러가 발생합니다. All 전체 데이터를 불러오는 model.objcets.all()은 QuerySet타입으로 반환 됩니다. dictionary를 사용..

웹 개발/Django 2021.05.03