[TOC] >[success] # 打印django sql 语句 ~~~ 当我们想看这条sql 语句的执行情况 ,我们可以用query的方法查询,下面详细讲解了用法 ~~~ >[danger] ##### from pprint import pprint as pp ~~~ pprint 和 connection.queries 更配偶 ~~~ ![](https://box.kancloud.cn/06b78d8c07ba0a3f67b9bb10010e2054_1069x641.png) >[danger] ##### query 查询 ~~~ 整体有两个属性 1.query 2.connection.queries 打印sql 日志 ~~~ * 这个是一个单元测试用法 * 注意点只用在buge = Flase 的情况下才可以用connection.queries打印sql日志 * 只用在引入`from django.db import connection`才可以打印日志 * 在tests 单元测试中默认是 buge = True,所以要引入`from django.test.utils import override_settings` 写装饰器进行配置 ~~~ from django.test.utils import override_settings from django.db import connection class BlongTest(TestCase): @override_settings(DEBUG=True) def setUp(self): user = User.objects.create_user("wang", "wang@qq", "wang1234") for i in range(1, 10): category_name = 'cate_%s' % i Categroy.objects.create(name=category_name, owner=user) @override_settings(DEBUG=True) def test_filter(self): categories = Categroy.objects.all() print(categories.query) categories = categories.filter(status=1) print(categories.query) print(categories.count()) print(categories.first()) print(connection.queries) ~~~