Подправил вывод времени генерации
All checks were successful
Auto-Deploy-Shop / deploy (push) Successful in 8s

This commit is contained in:
ack_ik
2026-01-26 15:27:55 +03:00
parent 6e1a3ca818
commit c73982850c
4 changed files with 57 additions and 1 deletions

View File

@@ -0,0 +1,11 @@
import os
def env_and_timing(request):
"""Provide ENV_TYPE and request timing info to templates."""
env = os.getenv('ENV_TYPE', 'local')
return {
'env_type': env,
'db_time': getattr(request, 'db_time', None),
'total_time': getattr(request, 'total_time', None),
}

43
core/middleware.py Normal file
View File

@@ -0,0 +1,43 @@
import time
from django.db import connection
class TimingMiddleware:
"""Middleware that measures request total time and DB query time.
Note: `connection.queries` is populated only when Django debug is enabled
(DEBUG=True) or when using a debug cursor. When not available, DB time
will be left as None.
"""
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
start = time.time()
# record initial number of collected queries (if available)
try:
initial_q_count = len(connection.queries)
except Exception:
initial_q_count = 0
response = self.get_response(request)
total = time.time() - start
db_time = None
try:
qs = getattr(connection, 'queries', None)
if qs:
# sum only queries executed during this request
new_queries = qs[initial_q_count:]
db_time = sum(float(q.get('time', 0)) for q in new_queries)
except Exception:
db_time = None
# attach to request so context processor can read them
request.db_time = db_time
request.total_time = total
return response

View File

@@ -43,6 +43,7 @@ INSTALLED_APPS = [
MIDDLEWARE = [ MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware', 'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware',
'core.middleware.TimingMiddleware',
'django.middleware.common.CommonMiddleware', 'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware', 'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware',
@@ -64,6 +65,7 @@ TEMPLATES = [
'django.template.context_processors.request', 'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth', 'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages', 'django.contrib.messages.context_processors.messages',
'core.context_processors.env_and_timing',
], ],
}, },
}, },

View File

@@ -1,7 +1,7 @@
<!-- templates/components/footer.html --> <!-- templates/components/footer.html -->
<footer class="bg-dark text-white text-center py-4 mt-5"> <footer class="bg-dark text-white text-center py-4 mt-5">
<div class="container"> <div class="container">
<p>&copy; 2023 Мой проект. Все права защищены.</p> <p>&copy; 2026 Проект АСК. Все права защищены.</p>
<p class="small mb-0"> <p class="small mb-0">
ENV: {{ env_type|default:"unknown" }} ENV: {{ env_type|default:"unknown" }}
| Page generated in {{ total_time|default:"-"|floatformat:3 }}s | Page generated in {{ total_time|default:"-"|floatformat:3 }}s