Maison  >  Article  >  développement back-end  >  Comment puis-je enregistrer toutes les requêtes SQL dans Django ?

Comment puis-je enregistrer toutes les requêtes SQL dans Django ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-17 17:27:03381parcourir

How Can I Log All SQL Queries in Django?

Consignation des requêtes SQL dans Django

Cette question recherche une méthode pour enregistrer toutes les requêtes SQL exécutées par une application Django, y compris celles provenant du site d'administration. La tâche consiste à créer un fichier journal central (par exemple, all-sql.log) pour capturer ces instructions SQL.

Configuration de LOGGING :

Pour y parvenir, fusionnez l'extrait suivant avec le champ LOGGING dans vos paramètres.py :

<code class="python">LOGGING = {
    'version': 1,
    'filters': {
        'require_debug_true': {
            '()': 'django.utils.log.RequireDebugTrue',
        }
    },
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'filters': ['require_debug_true'],
            'class': 'logging.StreamHandler',
        }
    },
    'loggers': {
        'django.db.backends': {
            'level': 'DEBUG',
            'handlers': ['console'],
        }
    }
}</code>

Explication :

  • Définissez 'level' : 'DEBUG' pour tout capturer Requêtes SQL, quelle que soit leur gravité.
  • Utilisez 'handlers' : ['console'] pour rediriger les requêtes SQL vers la sortie de la console.
  • Configurez les 'loggers' : {'django.db. backends' : {'level' : 'DEBUG'}} pour enregistrer toutes les requêtes SQL exécutées via l'ORM Django.

Remarque :

Cette solution provient d'après la réponse de @ acardenas89. Il garantit que toutes les requêtes SQL exécutées par Django sont écrites sur la console lorsque l'application est en mode débogage.

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!

Déclaration:
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