Подправил вывод времени генерации
All checks were successful
Auto-Deploy-Shop / deploy (push) Successful in 8s
All checks were successful
Auto-Deploy-Shop / deploy (push) Successful in 8s
This commit is contained in:
11
core/context_processors.py
Normal file
11
core/context_processors.py
Normal 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
43
core/middleware.py
Normal 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
|
||||||
@@ -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',
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -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>© 2023 Мой проект. Все права защищены.</p>
|
<p>© 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
|
||||||
|
|||||||
Reference in New Issue
Block a user