Como inspecionar consultas SQL no Django
Quer saber as instruções SQL que o Django executa ao executar uma consulta? A resposta é simples:
1 Encontre a resposta na documentação
A seção FAQ da documentação do Django fornece uma resposta direta:
2. . Acessar o banco de dados Conexões
pode acessar a lista de consultas SQL através de django.db.connection.queries:
from django.db import connection
print(connection.queries)
3 Visualize o objeto Queryset
O objeto Queryset possui um atributo de consulta que contém a consulta a ser executada:
print(MyModel.objects.filter(name="my name").query)
Nota: A saída da consulta por não é SQL válida. O motivo é:
"O Django nunca interpola parâmetros: ele envia a consulta e os parâmetros separadamente para o adaptador de banco de dados, que executa as operações apropriadas
(do relatório de bug do Django #17741)."
Portanto, não envie a saída da consulta diretamente para o banco de dados.
Redefinir consultas
Se você precisar redefinir uma consulta, como para ver o número de consultas executadas em um determinado período de tempo, você pode usar django.db.reset_queries:
from django.db import reset_queries
from django.db import connection
reset_queries()
# 运行你的查询
print(connection.queries)
>>> []
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3