如何在Django中拦截所有对数据库的读取查询?

Den*_*nis 5 python django signals

我需要拦截对数据库的所有查询并将它们写入文件日志。因此,如果像 DELETE、UPDATE 和 CREATE 这样的基本操作我可以用信号框架拦截。但是 READ 查询呢?我怎样才能用信号捕捉到它们?

Mad*_*ash 1

另一种方法是创建自定义中间件,并在其中处理查询

class SQLLoggingMiddleware(object):
    def process_request(self, request):
        from django.db import connection
        for query in connection.queries:
            #... do something with query
Run Code Online (Sandbox Code Playgroud)