Capture SQL queries via Django debug toolbar

2019-09-17 03:15发布

I'm calling my Django application from the command line with curl. I'm passing json in the request and collecting a response in json as well.

I have the Django debug toolbar installed. Is there a way I could capture the SQL via the toolbar and return it with the rest of the json response?

Something like

@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 }

Any idea what I'd put in replacement of DjangoDebugToolbar.sql()?

1条回答
萌系小妹纸
2楼-- · 2019-09-17 03:43

Try this:

from django.db import connection  
connection.queries

you can get de last query doing:

print connection.queries[-1]

or

print connection.queries.pop
查看更多
登录 后发表回答