Existe uma maneira de imprimir a consulta que o Django ORM está gerando?
Digamos que eu execute a seguinte instrução: Model.objects.filter(name='test')
Como faço para ver a consulta SQL gerada?
django
django-models
django-orm
Jarvis
fonte
fonte
prefetch_related
mostrar 2 consultas? Eu vejo apenas 1.<django.db.models.sql.query.Query object
Você também pode usar o log python para registrar todas as consultas geradas pelo Django. Basta adicionar isso ao seu arquivo de configurações.
Outro método, caso o aplicativo esteja gerando saída html - a barra de ferramentas de depuração do django pode ser usada.
fonte
'level': 'DEBUG'
abaixo'django.db'
.Você pode colar este código no seu shell, que exibirá todas as consultas SQL:
fonte
Enquanto
DEBUG
estiver ligado:Para uma consulta individual, você pode:
fonte
query
retorna oQuery
objeto desde o Djagno 1.2, que não possuias_sql
atributo.Talvez você deva dar uma olhada no
django-debug-toolbar
aplicativo, ele registrará todas as consultas para você, exibirá informações de perfil para elas e muito mais.fonte
Uma solução robusta seria fazer o servidor de banco de dados registrar em um arquivo e, em seguida,
fonte
Se você estiver usando o roteamento de banco de dados, provavelmente terá mais de uma conexão com o banco de dados. Um código como esse permite ver as conexões em uma sessão. Você pode redefinir as estatísticas da mesma maneira que em uma única conexão:
reset_queries()
...
fonte
Você pode usar um debango_toolbar do Django para visualizar a consulta SQL. Guia passo a passo para o uso de debug_toolbar:
Instale o Debug_toolbar
Edite o arquivo settings.py e adicione debug_toolbar aos aplicativos instalados, isso deve ser adicionado abaixo a 'django.contrib.staticfiles'. Adicione também debug_toolbar ao Middleware.
Settings.py =>
crie uma nova lista denominada INTERNAL_IPS no arquivo settings.py
Settings.py => crie uma nova lista no final do arquivo settings.py e adicione a lista abaixo:
Isso permitirá que a depuração seja executada apenas no servidor de desenvolvimento interno
Edite o arquivo urls.py de #Project e adicione o código abaixo:
aplicar migrar e executar o servidor novamente
Você verá um complemento na sua página da Web em 127.0.0.1 e, se clicar na caixa de seleção Consulta SQL, poderá ver também o tempo de execução da consulta.
fonte