如何在django shell中查看执行的数据库sql语句?

查看:380
本文介绍了如何在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆