Ответ 1
панель инструментов отладки - это то, что вы хотите, это помогает вам время каждого из ваших запросов.
Кроме того, этот фрагмент работает тоже.
Я всегда использовал библиотеку Python timeit
во время моих маленьких программ Python.
Теперь я разрабатываю приложение Django, и мне было интересно, как приурочить функции Django, особенно запросы.
Например, у меня есть def index(request)
в my views.py, который создает кучу вещей при загрузке страницы индекса.
Как я могу использовать timeit
для выполнения этой конкретной функции, не изменяя слишком много моих существующих функций?
панель инструментов отладки - это то, что вы хотите, это помогает вам время каждого из ваших запросов.
Кроме того, этот фрагмент работает тоже.
Если ваш проект django находится в отладке, вы можете просмотреть свои запросы к базе данных (и времена), используя:
>>> from django.db import connection
>>> connection.queries
Я знаю, что это не удовлетворит ваши потребности в функциях профилей, но надеюсь, что это поможет для части запросов!
Лучший способ получить это - использовать панель инструментов отладки, вы также получите некоторые дополнительные функции для оптимизации запросов, которые помогут вам оптимизировать ваш запрос базы данных.
Вот еще одно решение, вы можете использовать connection.queries
. Это вернет команду SQL, созданную для команды, которая была выполнена непосредственно перед командой connect.queries
. Вы можете выполнить reset_queries после получения времени предыдущего запроса, используя reset_queries()
. Использование reset_queries()
не является обязательным.
Предположим, у вас есть модель с именем Устройство. Вы можете измерить время запроса следующим образом:
>>> from django.db import connection, reset_queries
>>> from appname.models import Device
>>> devices = Device.objects.all()
>>> connection.queries
>>> reset_queries()
Вы также можете использовать командную строку Django shell.
%time SomeModel.objects.count()
Показывает счет Wall time
в мс.
Нечего импортировать, кроме SomeModel
.