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语句")
运行

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',
},
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示