Maison  >  Article  >  développement back-end  >  Comment afficher les requêtes SQL exécutées par Django ?

Comment afficher les requêtes SQL exécutées par Django ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-04 15:02:23920parcourir

How to View SQL Queries Executed by Django?

Dépannage des requêtes SQL de Django

Cette question examine les méthodes d'affichage des requêtes SQL exécutées par Django lors des opérations de requête.

Solution :

Selon la FAQ de la documentation Django, Django propose deux options pour inspecter les requêtes SQL :

  • django.db.connection.queries : Cet attribut contient une liste de toutes les requêtes SQL exécutées par Django. Il est accessible comme suit :
<code class="python">from django.db import connection
print(connection.queries)</code>
  • Queryset.query : Chaque objet queryset possède un attribut de requête qui contient la requête à exécuter. Voici un exemple :
<code class="python">print(MyModel.objects.filter(name="my name").query)</code>

Remarque : Le résultat de la requête affiché par ces méthodes n'est pas une syntaxe SQL valide. Django n'interpole jamais les paramètres de requête, mais envoie la requête et les paramètres séparément à l'adaptateur de base de données pour exécution, garantissant ainsi l'intégrité des données. Par conséquent, n'exécutez pas le résultat de la requête directement dans une base de données.

Pour réinitialiser la liste des requêtes, par exemple, pour surveiller le nombre de requêtes exécutées dans un laps de temps spécifique, utilisez reset_queries de django.db :

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

reset_queries()
# Execute your query here
print(connection.queries)  # Returns an empty list</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