首页 >后端开发 >Python教程 >如何在 Django 中记录所有 SQL 查询?

如何在 Django 中记录所有 SQL 查询?

Patricia Arquette
Patricia Arquette原创
2024-10-17 17:27:03493浏览

How Can I Log All SQL Queries in Django?

在 Django 中记录 SQL 查询

这个问题寻求一种方法来记录 Django 应用程序执行的所有 SQL 查询,包括源自管理站点。任务是创建一个中央日志文件(例如 all-sql.log)来捕获这些 SQL 语句。

配置 LOGGING:

要实现此目的,请合并以下代码段在您的 settings.py 中包含 LOGGING 字段:

<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>

说明:

  • 设置 'level': 'DEBUG' 以捕获所有内容SQL 查询,无论其严重性如何。
  • 使用 'handlers': ['console'] 将 SQL 查询重定向到控制台输出。
  • 配置 'loggers': {'django.db. backends': {'level': 'DEBUG'}} 记录通过 Django ORM 执行的所有 SQL 查询。

注意:

此解决方案源自来自@acardenas89 的回答。它确保当应用程序处于调试模式时,所有 Django 执行的 SQL 查询都会写入控制台。

以上是如何在 Django 中记录所有 SQL 查询?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn