장고 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'.'email', 'users'.'image_url', 'users'.'phone_number', 'users'.'created_at', 'users'.'updated_at' FROM 'users'
>>> queryset = User.objects.filter(id__gt=5)
>>> str(queryset.query)
SELECT 'users'.'id', 'users'.'nickname', 'users'.'password', 'users'.'email', 'users'.'image_url', 'users'.'phone_number', 'users'.'created_at', 'users'.'updated_at' FROM 'users'.'id' > 5