Comment puis-je inspecter les requêtes SQL exécutées par Django ?

Barbara Streisand
Libérer: 2024-11-02 16:59:03
original
732 Les gens l'ont consulté

How Can I Inspect the SQL Queries Executed by Django?

Comment inspecter les requêtes SQL dans Django

Vous voulez connaître les instructions SQL que Django exécute lors de l'exécution d'une requête ? La réponse est simple :

1. Trouvez la réponse dans la documentation
La section FAQ de la documentation Django fournit une réponse simple :

2. . Accéder à la base de données La connexion
peut accéder à la liste de requêtes SQL via django.db.connection.queries :

<code class="python">from django.db import connection
print(connection.queries)</code>
Copier après la connexion

3. Afficher l'objet Queryset
. L'objet Queryset a un attribut de requête , qui contient la requête à exécuter :

<code class="python">print(MyModel.objects.filter(name="my name").query)</code>
Copier après la connexion

Remarque : La requête générée par n'est pas du SQL valide. La raison est la suivante :

"Django n'interpole jamais 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."

(Tiré du rapport de bug de Django n° 17741). )

Par conséquent, n’envoyez pas le résultat de la requête directement à la base de données.

Réinitialiser les requêtes
Si vous devez réinitialiser une requête, par exemple pour voir le nombre de requêtes exécutées au cours d'une période donnée, vous pouvez utiliser django.db.reset_queries :

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

reset_queries()
# 运行你的查询
print(connection.queries)
>>> []</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!