Skip to main content
 首页 » 编程设计

python之使用 DEBUG=True & for delete() 和 save() 在 Django 中显示原始 SQL

2024年11月01日35yyy_WW

当 DEBUG=True 和 DEBUG=False 时,是否有可能看到原始 sql?对于方法 delete() 和 save() 呢? 我想记录对我的应用程序的所有请求,但我不明白如何记录原始 sql。

请您参考如下方法:

请务必阅读 docs on logging .

您需要 django.db.backends logger和 RequireDebugFalse filter .

示例设置:

LOGGING = { 
    'version': 1, 
    'disable_existing_loggers': False, 
    'filters': { 
        'require_debug_false': { 
            '()': 'django.utils.log.RequireDebugFalse' 
        } 
    }, 
    'handlers': { 
        'console':{ 
            'level':'DEBUG', 
            'filters': ['require_debug_false'], 
            'class':'logging.StreamHandler', 
        }, 
    }, 
    'loggers': { 
        'django.db.backends': { 
            'handlers':['console'], 
            'propagate': True, 
            'level':'DEBUG', 
        }, 
    } 
} 

注意:您还可以在 SQL 服务器配置中启用 SQL 查询日志记录,而无需接触 django。有关详细信息,请参阅您的 SQL 服务器文档。