使用出色的Django-Devserver,我可以在代码中找到各种有趣且意外的SQL调用。我想找到调用的来源,因此我正在寻找一种方法来获取日志或打印出Python Shell中Django ORM生成的所有SQL调用。也就是说,当我通过Python Shell进行Django ORM调用时,我希望看到输出的SQL记录或记录下来。
我注意到几种将日志信息添加到html页面的解决方案。有没有一种简单的方法可以转储到命令行?
如果你在外壳中,或者在任何地方,都可以使用queryset方法
query.as_sql()
打印SQL命令。
即:
MyModel.objects.all().query.as_sql()
如果你使用的是Django 1.3:
import logging l = logging.getLogger('django.db.backends') l.setLevel(logging.DEBUG) l.addHandler(logging.StreamHandler())