Maison >développement back-end >Tutoriel Python >Comment puis-je afficher les requêtes SQL effectuées par Django ?

Comment puis-je afficher les requêtes SQL effectuées par Django ?

DDD
DDDoriginal
2024-11-04 06:53:30524parcourir

How Can I View SQL Queries Performed by Django?

Affichage des requêtes SQL effectuées par Django

Lors de l'exécution de requêtes, Django exécute des commandes SQL qui ne sont souvent pas visibles pour les développeurs. Cependant, il existe des méthodes pour observer ces requêtes et inspecter leur contenu.

Accéder aux listes de requêtes

Django stocke une liste de toutes les requêtes exécutées dans django.db.connection. requêtes. Pour afficher ces requêtes :

<code class="python">from django.db import connection
print(connection.queries)</code>

Récupérer la requête des ensembles de requêtes

Les ensembles de requêtes, représentant les requêtes de base de données, ont un attribut de requête qui contient le SQL brut à exécuter :

<code class="python">print(MyModel.objects.filter(name="my name").query)</code>

Remarque sur les limitations de sortie

Il est important de noter que le SQL affiché peut ne pas être syntaxiquement valide car :

"Django n'interpole jamais réellement les paramètres : il envoie la requête et les paramètres séparément à l'adaptateur de base de données, qui effectue les opérations appropriées."

Cela signifie que la requête affichée ne peut pas être exécutée directement sur une base de données.

Réinitialisation des requêtes

Si vous devez réinitialiser la liste des requêtes, par exemple, pour compter les requêtes exécutées au cours d'une période spécifique, utilisez reset_queries de django.db :

<code class="python">from django.db import reset_queries
from django.db import connection

reset_queries()
# Run your query here
print(connection.queries)
>>> []</code>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn