"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso inspecionar as consultas SQL executadas pelo Django?

Como posso inspecionar as consultas SQL executadas pelo Django?

Publicado em 2024-11-11
Navegar:483

How Can I Inspect the SQL Queries Executed by Django?

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)
>>> []
Tutorial mais recente Mais>

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