【问题标题】:Print sql queries in jupyter notebook with django-extensions plugin使用 django-extensions 插件在 jupyter notebook 中打印 sql 查询
【发布时间】:2018-12-24 01:11:53
【问题描述】:
是否可以在此命令中显示 SQL 查询:python manage.py shell_plus --print-sql 但在 Jupyter Notebook 中?
我尝试了这个命令python manage.py shell_plus --notebook --print-sql,但没有成功。
【问题讨论】:
标签:
django
ipython
jupyter-notebook
manage.py
django-extensions
【解决方案1】:
您看不到 SQL 查询可能是 Django 扩展中的一个错误。几个版本前,有人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'
)