vbv/server/vbv_lernwelt/debugtools/middleware.py

39 lines
954 B
Python

import time
import structlog
from django.db import connection, reset_queries
logger = structlog.get_logger(__name__)
class QueryCountDebugMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
if not request.path.startswith("/api/") and not request.path.startswith(
"/server/"
):
return self.get_response(request)
reset_queries()
start_queries = len(connection.queries)
start_time = time.time()
response = self.get_response(request)
end_queries = len(connection.queries)
end_time = time.time()
total_queries = end_queries - start_queries
duration = end_time - start_time
logger.debug(
"query_count_middleware",
request_path=request.path,
queries=total_queries,
duration=duration,
)
return response