Встречается на собеседованиях • сегодня

Как отслеживать запросы, генерируемые Django

Для отслеживания запросов в Django можно использовать несколько подходов:

  1. Логирование SQL-запросов
    Добавьте в settings.py:
python
LOGGING = {
    'version': 1,
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
        },
    },
    'loggers': {
        'django.db.backends': {
            'level': 'DEBUG',
            'handlers': ['console'],
        }
    }
}
  1. Django Debug Toolbar
    Установите пакет и добавьте в settings.py:
python
INSTALLED_APPS += ['debug_toolbar']
MIDDLEWARE += ['debug_toolbar.middleware.DebugToolbarMiddleware']
INTERNAL_IPS = ['127.0.0.1']
  1. Сигналы
    Можно подключиться к сигналу connection_created:
python
from django.db.backends.signals import connection_created
from django.dispatch import receiver

@receiver(connection_created)
def log_queries(sender, connection, **kwargs):
    print(connection.queries)
  1. Middleware
    Создайте кастомное middleware для логирования:
python
class QueryLoggerMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        response = self.get_response(request)
        from django.db import connection
        print(f"Total queries: {len(connection.queries)}")
        return response
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы