如何在django shell中查看执行的数据库sql语句?
本文介绍了如何在django shell中查看执行的数据库sql语句?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
使用python manage.py shell
进入 shell,查询语句People.objects.get(id=11)
,经过什么样设置可以在shell中同时输出执行了哪些sql语句?
我的 Django 版本 1.8.10
老版本的 Django 可以使用以下的方法打印执行的 sql 语句,新版本貌似无效了。
import logging
l = logging.getLogger('django.db.backends')
l.setLevel(logging.DEBUG)
l.addHandler(logging.StreamHandler())
解决方案
官方文档的回答 How can I see the raw SQL queries Django is running?
>>> from django.db import connection
>>> connection.queries
通过这个方式,可以看所有的数据库查询,并不是很直观。
还有一种方式,
>>> a = Blog.objects.filter(entry__authors__name__isnull=True)
>>> print a.query
>>> Blog.objects.filter(entry__authors__name__isnull=True).query.sql_with_params()
这篇关于如何在django shell中查看执行的数据库sql语句?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文