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 de Django fournit une réponse simple :
2 . Accéder à la base de données Connections
peut accéder à SQL via django.db.connection.queries. Liste de requêtes :
from django.db import connection
print(connection.queries)
3. Afficher l'objet Queryset
L'objet Queryset possède un attribut de requête qui contient la requête à exécuter :
print(MyModel.objects.filter(name="my name").query)
Remarque : La requête générée par n'est pas un SQL valide. La raison est :
"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."
(extrait 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 :
from django.db import reset_queries
from django.db import connection
reset_queries()
# 运行你的查询
print(connection.queries)
>>> []
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3