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

Mary-Kate Olsen
Libérer: 2024-11-04 15:02:23
original
919 Les gens l'ont consulté

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>
Copier après la connexion
  • 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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!