Django调试models输出的SQL语句

Posted andyzhang-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django调试models输出的SQL语句相关的知识,希望对你有一定的参考价值。

django1.3在shell下,调试models变得更为简单了,不用像之前的版本,手工去调用django query,才能打印出之前的代码是执行的什么SQL语句.

1.3开始只需在settings.py里,配置如下logging即可:

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


使用效果:
>>> A.objects.all()
(0.001) SELECT "app1_a"."id", "app1_a"."name" FROM "app1_a" LIMIT 21; args=()
[<A: A object>]



























以上是关于Django调试models输出的SQL语句的主要内容,如果未能解决你的问题,请参考以下文章

Django和SQL语句的对应参考

Django 之 查看执行的sql语句

django 快速数据库操作,不用SQL语句

django 使用原生SQL语句反向生成MODELS.PY中的表结构

django 有model生成SQL以及现有反向表生成model

Django查询SQL语句