Django终端打印SQL语句
第一种方式:
>>> from core.models import Province >>> from django.db import connection >>> p = Province(name=u'河南', code='0371') >>> p.save() >>> print connection.queries [{u'time': u'0.439', u'sql': u"INSERT INTO `core_province` (`name`, `code`) VALUES ('\u5e7f\u5dde', 20)"}, {u'time': u'0.056', u'sql': u"UPDATE `core_province` SET `name` = '\u5e7f\u5dde', `code` = 20 WHERE `core_province`.`id` = 3 "}, {u'time': u'0.102', u'sql': u"INSERT INTO `core_province` (`name`, `code`) VALUES ('\u6cb3\u5357', 371)"}]
从结果中可以看出结果是一个列表(包含了我之前的测试语句)
如果只想拿到最后一条查询语句可进行切片操作
>>> print connection.queries[-1:] [{u'time': u'0.102', u'sql': u"INSERT INTO `core_province` (`name`, `code`) VALUES ('\u6cb3\u5357', 371)"}]
第二种方式:配置在终端中显示sql语句
在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', }, } }
其实就是为你的Django项目配置上一个名为django.db.backends的logger实例即可查看翻译后的SQL语句。
提示:如果也想在log文件中输出,可以配置一个hanlder即可
注意:settings.py
1 | DEBUG = True # 开发环境设置True,线上环境一定要关闭 |
LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { 'verbose': { 'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s' }, 'simple': { 'format': '%(levelname)s %(asctime)s %(module)s %(message)s' }, }, 'handlers': { 'sql': { 'level': 'DEBUG', 'class': 'logging.FileHandler', 'filename': os.path.join(BASE_DIR, "sql_info.log"), 'formatter': 'simple' }, 'console': { 'level': 'DEBUG', 'class': 'logging.StreamHandler', } }, 'loggers': { 'django.db.backends': { 'handlers': ['sql', 'console'], 'propagate': True, 'level': 'DEBUG', }, } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏