3

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

我试过这个命令python manage.py shell_plus --notebook --print-sql,但没有奏效。

4

1 回答 1

1

您看不到 SQL 查询可能是 Django Extensions 中的一个错误。几个版本前,这里有人问如何在 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'
)
于 2019-02-11T14:34:00.393 回答