通过Django调试工具栏捕获SQL查询

时间:2011-10-27 15:56:24

标签: django django-debug-toolbar

我正在使用curl从命令行调用我的Django应用程序。我在请求中传递json并在json中收集响应。

我安装了Django调试工具栏。有没有办法可以通过工具栏捕获SQL并将其与其余的json响应一起返回?

这样的东西
@json_response
def index(request):
    try:
        ids = json.loads(request.read())['ids']
    except ValueError:
        return HttpResponseBadRequest

    listing = MyModel.public().filter(id__in=[c.split('-')[0] for c in ids])

    prep_list = [ l.details(request) for l in listing ]

    return {'status_code': 0,
            'status_text': 'success',
            'sql_query_list: DjangoDebugToolbar.sql()
            'prep_list': prep_list }

知道我要用什么代替DjangoDebugToolbar.sql()

1 个答案:

答案 0 :(得分:3)

试试这个:

from django.db import connection  
connection.queries

你可以得到最后一次查询:

print connection.queries[-1]

print connection.queries.pop