django - 使用 django-extensions 插件在 jupyter 笔记本中打印 sql 查询

标签 django ipython jupyter-notebook manage.py django-extensions

是否可以像以下命令一样显示 SQL 查询:python manage.py shell_plus --print-sql 但在 Jupyter Notebook 中?

我尝试了这个命令python manage.py shell_plus --notebook --print-sql但它不起作用。

最佳答案

这可能是 Django 扩展中的一个错误,您看不到 SQL 查询。几个版本前,有人asked here如何在 Jupyter 中禁用 SQL 打印。

作为解决方法,您可以使用 django_print_sql :

from django_print_sql import print_sql
with print_sql(count_only=False):
    User.objects.count()

您甚至可能会发现控制要打印的查询比打印所有查询更好。

但我大多只是追溯打印最后一个查询:

from django import db
db.connection.queries[-1]

如果您想用 sqlparse 漂亮地打印查询,对于实用函数来说,它开始变得足够复杂:

import sqlparse
sqlparse.format(
    db.connection.queries[-1]['sql'], 
    reindent=True, 
    keyword_case='upper'
)

关于django - 使用 django-extensions 插件在 jupyter 笔记本中打印 sql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51362648/

相关文章:

python - 类型错误 : Field 'id' expected a number but got (()

google-chrome - 在笔记本中保存 <iframe> 对象的屏幕截图?

bash - 从 IPython 执行 Bash 命令

python - 如何将 jupyter 内核从 Python 2 更改为 python 3?

command-line - Windows - 'jupyter' 不是内部或外部命令,也不是可运行的程序或批处理文件

python - Wagtail:如何使用 RichTextField 来表示模型的字符串?

django - 模板不存在

django - Django模型实例的Save方法不更新字段

python - django shell 触发 Postgres 空闲事务问题

python - 如何从本地驱动器上传和保存大数据到Google Colaboratory?