hus*_*ngs 2 django django-models
对于Django中的查询集,我们可以调用其方法.query来获取原始sql。
例如,
queryset = AModel.objects.all()
print queryset.query
Run Code Online (Sandbox Code Playgroud)
输出可能是: SELECT "id", ... FROM "amodel"
但是对于通过“get”检索对象,例如,
item = AModel.objects.get(id = 100)
Run Code Online (Sandbox Code Playgroud)
如何获得等效的原始sql?注意:该项目可能为“无”。
等于item = AModel.objects.get(id = 100)
items = AModel.objects.filter(id = 100)
if len(items) == 1:
return items[0]
else:
raise exception
Run Code Online (Sandbox Code Playgroud)
因此执行的查询等于AModel.objects.filter(id = 100)
另外,您还可以查看最新的项目connection.queries
from django.db import connection # use connections for non-default dbs
print connection.queries[-1]
Run Code Online (Sandbox Code Playgroud)
并且,正如 FoxMaSk 所说,django-debug-toolbar
在浏览器中安装并享受它。
归档时间: |
|
查看次数: |
1326 次 |
最近记录: |