Django显示SQL语句

Django显示SQL语句

1、使用connection显示

导入:from django.db import connection

获取SQL语句:connection.queries

样例

@action(detail=False)
def test_print_sql(self, request):
    from django.db import connection
    groups = Group.objects.all()
    print(f"所有的组:{groups}")
    master = Group.objects.filter(name="master组").first()
    print(f"master组:{master}")
    admin = Group.objects.filter(name="admin组").first()
    print(f"admin组:{admin}")
    in_sql = Group.objects.filter(name__in=["master组", "dev组", "不存在的组"]).first()
    print(f"in语句的sql:{in_sql}")
    Group(gid="test组", name="测试组").save()
    print("插入单条数据")
    Group.objects.bulk_create([Group(gid="组1", name="组1"), Group(gid="组2", name="组2"), Group(gid="组3", name="组3"),
                               Group(gid="组4", name="组4")])
    print("批量创建")
    for o in connection.queries:
        print(f"SQL语句:{o}")
    return Response(status=status.HTTP_200_OK, data="测试显示SQL语句")

运行

image-20220712163722779

2、配置log显示

在Django项目的settings.py文件中,在最后复制粘贴如下代码:

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

3、参考链接

如何查看Django ORM实际执行的原始SQL查询

我该如何在Django运行的过程中看到SQL查询?

Django终端打印SQL语句

posted @   南风丶轻语  阅读(554)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示