如何使用request_finished信号获取和使用HttpRequest?
有兴趣提取用于记录目的的URL.
当前代码看起来像这样:
import logging
def write_to_file(sender, **kwargs):
logging.debug(type(sender))
logging.debug(dir(sender))
from django.core.signals import request_finished
request_finished.connect(write_to_file)
Run Code Online (Sandbox Code Playgroud)
生成这个
2010-03-03 13:18:44,602 DEBUG <type 'type'>
2010-03-03 13:18:44,602 DEBUG ['__call__', '__class__', '__delattr__', '__dict__', '__doc__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__', '__weakref__', '_get_traceback', 'apply_response_fixes', 'get_response', 'handle_uncaught_exception', 'initLock', 'load_middleware', 'request_class', 'response_fixes']
Run Code Online (Sandbox Code Playgroud)
Ofr*_*viv -3
尝试
sender.request_class.get_full_path()
Run Code Online (Sandbox Code Playgroud)
或者
sender.request_class._get_request()
Run Code Online (Sandbox Code Playgroud)
或者,如果您想尝试使用middleware执行此操作,正如 mountainwhim 建议的那样,这里有一个演示使用 middleware 请求计时的片段。