使用优秀的Django-Devserver,我发现我的代码中有各种有趣的、意想不到的SQL调用.我想知道调用来自哪里,因此我正在寻找一种方法来获得由Python shell中的Django ORM生成的所有SQL调用的日志(log)或打印输出.也就是说,当我通过Python shell执行Django ORM调用时,我希望看到结果SQL打印出来或记录下来.

我注意到有几个解决方案可以将日志(log)信息添加到html页面.有没有简单的方法可以转储到命令行?

推荐答案

如果您在shell中,或者在任何地方,您可以使用queryset方法

query.as_sql()

打印SQL命令.

例如:

MyModel.objects.all().query.as_sql()

Django相关问答推荐

把Django测试和testcafe结合起来?

Django Model邮箱字段是必需的,即使在我将其设置为NULL=True和BLACK=True之后也是如此

其中实际的数据库提取在DRF list()中完成

Django/SendGrid-密码重置-发件人地址与验证的发件人身份不匹配.";

在生产中添加整型主键

如何在Django中将可选参数传递给视图?

在Python中向函数的查询列表添加条件

错误``Forbidden (403) CSRF 验证失败.请求中止.``` 当try 登录管理员时

如何在不编写每个视图中的逻辑的情况下呈现值,Django?

更新或创建异步 Django ORM 实例

QuerySet对象在bulk_update中没有属性pk

相同的字符串不同的翻译

使用 south 重构具有继承的 Django 模型

直接在模型类上使用 Django 管理器与静态方法

Django:在模板中显示当前语言环境

直接在Django的模板中访问ForeignKey

如何在 django-rest-framework 中为 API 使用 TokenAuthentication

Django ModelChoiceField optgroup 标签

如何在 django 中捕获UNIQUE constraint failed404

基于 User-Agent 更改 Django 模板