Connectez toutes les requêtes SQL dans votre application Django
Cet article vous expliquera comment enregistrer efficacement toutes les requêtes SQL exécutées par votre application Django, y compris les requêtes du site d'administration. La clé est de modifier le champ settings.py
dans le fichier LOGGING
.
Étapes de mise en œuvre :
logging
dans votre code. Cela vous permet de configurer et de gérer la fonctionnalité de journalisation. <code class="language-python">import logging</code>
<code class="language-python">class QueryHandler(logging.Handler): def emit(self, record): # 自定义处理SQL查询的逻辑 pass</code>
settings.py
du fichier LOGGING
. Cela permettra la journalisation des requêtes SQL et la sortie directe vers le processeur défini. <code class="language-python">LOGGING = { 'version': 1, 'filters': { 'require_debug_true': { '()': 'django.utils.log.RequireDebugTrue', } }, 'handlers': { 'console': { 'level': 'DEBUG', 'filters': ['require_debug_true'], 'class': 'logging.StreamHandler', }, 'query_handler': { 'level': 'DEBUG', 'filters': [], 'class': 'path.to.QueryHandler', # 将path.to.QueryHandler替换为您的自定义处理器的路径 } }, 'loggers': { 'django.db.backends': { 'level': 'DEBUG', 'handlers': ['query_handler'], } } }</code>
<code class="language-python">logger = logging.getLogger('django.db.backends')</code>
<code class="language-python">logger.debug(sql_query)</code>
En suivant ces étapes et en incorporant les extraits de code fournis dans votre fichier settings.py
, Django enregistrera toutes les requêtes SQL dans le fichier journal spécifié, fournissant un aperçu complet de toutes les interactions avec la base de données. N'oubliez pas de remplacer 'path.to.QueryHandler'
par le chemin réel vers votre processeur personnalisé. Si vous n'avez pas besoin d'un processeur personnalisé, vous pouvez supprimer la partie 'query_handler'
et conserver uniquement le processeur 'console'
.
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!