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. import logging
class QueryHandler(logging.Handler): def emit(self, record): # 自定义处理SQL查询的逻辑 pass
settings.py
du fichier LOGGING
. Cela permettra la journalisation des requêtes SQL et la sortie directe vers le processeur défini. 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'], } } }
logger = logging.getLogger('django.db.backends')
logger.debug(sql_query)
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!