Как проверять SQL-запросы в Django
Хотите узнать, какие операторы SQL запускает Django при выполнении запроса? Ответ прост:
1 Найдите ответ в документации
В разделе FAQ документации Django есть простой ответ:
2. Доступ к базе данных Connections
может получить доступ к SQL через django.db.connection.queries. Список запросов:
from django.db import connection
print(connection.queries)
3. Просмотр объекта Queryset
Объект Queryset имеет атрибут запроса, который содержит запрос, который необходимо выполнить:
print(MyModel.objects.filter(name="my name").query)
Примечание: вывод запроса не является допустимым SQL. Причина в следующем:
«Django никогда не интерполирует параметры: он отправляет запрос и параметры отдельно в адаптер базы данных, который выполняет соответствующие операции».
(из отчета об ошибке Django № 17741)
Поэтому не отправляйте выходные данные запроса непосредственно в базу данных.
Сбросить запросы
Если вам нужно сбросить запрос, например, чтобы увидеть количество запросов, выполненных за определенный период времени, вы можете использовать django.db.reset_queries:
from django.db import reset_queries
from django.db import connection
reset_queries()
# 运行你的查询
print(connection.queries)
>>> []
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3