À l'aide de django.db.connexion.les requêtes
J'ai un Python/Django application qui s'exécute beaucoup d'instructions SQL. À des fins de débogage, j'ai pensé que je devrais créer une vue simple pour moi qui vient de listes de toutes les instructions SQL qui ont été exécutés.
Selon la documentation, ce code devrait être suffisant pour le faire:
from django.db import connection
connection.queries
aussi longtemps que le DÉBOGAGE est Vrai.
Cependant, ce n'est pas de me donner quoi que ce soit. Le DÉBOGAGE est très certainement Vrai. Dans quel contexte est-ce connexion.les requêtes stockées? Je veux dire, je devrais être capable d'exécuter une page qui exécute un lot d'instructions SQL, puis il suffit de passer de l'un à l' http://myserver/sql vue que j'ai créé et voir ces instructions SQL là, à droite? À l'aide de la même session du navigateur de cours ...
Je n'ai vérifier si la db.reset_queries() a été exécuté n'importe où dans le code, paraît-il ne l'est pas.
Des idées pourquoi la connexion.des requêtes est toujours vide?
OriginalL'auteur HaukurHaf | 2010-01-25
Vous devez vous connecter pour publier un commentaire.
Ben est juste que vous ne voyez que des requêtes à partir du processus actuel. Vous pouvez l'utiliser dans la même vue, ou dans la console, mais pas entre les points de vue.
La meilleure façon de voir quelles sont les requêtes en cours d'exécution dans votre point de vue est d'utiliser le Django debug toolbar.
Je n'ai jamais eu de succès à courir du DDT sur un serveur de production. Il semble que le travail avec le serveur de développement de Django reinhardt, exécuté localement.
OriginalL'auteur Daniel Roseman
@Daniel Roseman, c'est une bonne idée, mais si vous voulez savoir les requêtes sql de la boîte:
installer django-commande-extensions et l'ajouter aux applications installées.
il va ajouter de nombreuses utils commandes dans votre projet, l'un d'eux:
exemple:
python manage.py debugsqlshell
OriginalL'auteur panchicore
Je pense que ces requêtes sont stockées dans la mémoire, et ne sont pas partagées entre les processus, de sorte que vous n'aurez accès qu'aux requêtes formulées par le processus courant.
Si j'ai essayer le code que vous avez collé dans un
./manage.py shell
session, je ne vois que des requêtes que je l'ai déjà fait dans cette session shell.Si je passe
queries
à partir d'un point de vue dans un modèle de contexte et de l'afficher dans le template, je vois juste les requêtes formulées dans cet avis. C'est en utilisant le serveur de dev, si.Je suppose—mais je n'ai pas testé—que si vous l'utilisez dans un environnement où vous avez un processus servant à de multiples demandes, vous pouvez voir plus de requêtes étant enregistrée à chaque demande.
OriginalL'auteur Ben James
OriginalL'auteur Alexander A.Sosnovskiy
C'est ce qu'il est corrigé pour moi; j'ai utilisé:
pour obtenir le comptage de requête.
OriginalL'auteur 2ps