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>
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>
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>
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!