9
votes

La sortie Orm de Django peut-elle utiliser la requête SQL utilisée?

Je sais que vous pouvez émettre le SQL pour voir les tables créées. Est-il possible pour Django de sortir le SQL utilisé pour toute requête comme: xxx

? Je ne pouvais pas trouver cela dans les docs, j'espère que quelqu'un peut les signaler à moi, si en fait Django peut le faire.


0 commentaires

3 Réponses :


3
votes

Je trouve le Barre d'outils Django Debug pour être inestimable. Il y a aussi .AS_SQL () pour l'affichage en code de choses (voir Ceci alors post pour une note qui est une bonne ligne dedans)


0 commentaires

17
votes

Voir Django FAQ: Comment puis-je voir les requêtes SQL brutes Django est en cours d'exécution? :

>>> from django.db import connection    
>>> connection.queries = []
>>> Protocols.objects.filter(active=False)
>>> print connection.queries


5 commentaires

Génial, je ne sais pas comment je n'ai pas vu ça avant.


C'est très bon mais le problème est que certaines requêtes peuvent être effacées. Vous devez savoir où mettre les instructions. Et si je veux voir toutes les questions sans la connaissance?


Je veux dire que parfois vous ne pouvez voir pas toutes les instructions SQL si vous localisez la sortie uniquement au même endroit.


@Sergzach: Alors .. Localisez la sortie où vous en avez besoin?


Mise à jour: sauf si vous avez besoin d'un journal complet SQL, vous pouvez également vérifier vos journaux de base de données, django.db python journal (en mode débogage) ou utiliser Dev Server qui enregistre SQL à la console (je ne me souviens pas de ce qui l'ajout. est dans)



9
votes

oui ça peut. Vous devez vous assurer que vous avez débogue = true code> dans votre fichier de paramètres

Vous pouvez voir quelles requêtes SQL ont été exécutées par ... P>

str(MyModel.objects.filter(myvar__gte=15).query)


0 commentaires