Django 如何查看生成的 SQL 查询?

2024-06-28

我有一个需要数据并应该将其插入数据库的表单。当我处理该表单时,它给了我一个值错误,但是当我进入数据库并尝试手动插入它时,它工作正常。

为了调试这种情况,我想看看 Django 生成的查询失败了。在调试网页上我没有看到类似 SQL 查询的内容。

如何查看 Django 生成的实际查询?

请指教。 谢谢。


使用日志记录怎么样?

你可以在settings.py中添加它

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': True,
        },
    },
}

你可以将其添加到你的任何views.py中

import logging

l = logging.getLogger('django.db.backends')
l.setLevel(logging.DEBUG)
l.addHandler(logging.StreamHandler())

在控制台中,您可以检查 SQL 查询。

其他方式

go shell

python manage.py shell

>>from yourmodel import Example
>>queryset = Example.objects.all()
>>print(queryset.query)

您可以看到原始查询字符串。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django 如何查看生成的 SQL 查询? 的相关文章

随机推荐