【问题标题】: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'
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-23
      • 1970-01-01
      • 2015-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-27
      • 1970-01-01
      相关资源
      最近更新 更多