django의 모든 원시 SQL 쿼리 보기

5500 단어 djangopythonsql
django에서 모든 RAW SQL 쿼리를 보는 방법.
이를 위한 좋은 옵션이 하나 있습니다.

서버 로그



로깅 수준을 DEBUG로 변경합니다.
settings.py에 이 작은 스니펫을 추가할 수 있습니다.


if DEBUG:
    import logging
    l = logging.getLogger('django.db.backends')
    l.setLevel(logging.DEBUG)
    l.addHandler(logging.StreamHandler())

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': True,
        },
    },
}


그런 다음 보기나 테스트 또는 다른 파일 내부에 디버그 수준 변경을 추가하십시오.

import logging

l = logging.getLogger('django.db.backends')
l.setLevel(logging.DEBUG)
l.addHandler(logging.StreamHandler())


또는 settings.py에 추가하여 전역적으로 사용할 수도 있습니다.


if DEBUG:
    import logging
    l = logging.getLogger('django.db.backends')
    l.setLevel(logging.DEBUG)
    l.addHandler(logging.StreamHandler())



그런 다음 실행 중인 서버의 로그를 관찰합니다.



쿼리셋 쿼리 매개변수




python manage.py shell

from model import ExampleModel
queryset = ExampleModel.objects.all()
print(queryset.query)
or
queryset.raw

좋은 웹페이지 즐겨찾기