Skip to main content
 首页 » 编程设计

python之如何计算 Django 中的响应时间

2025年05月04日32bjzhanghao

如何计算从用户输入搜索条件到相关信息加载/显示到门户的响应时间?

请您参考如下方法:

从 Django 1.10 开始,它的工作方式有所不同。

https://docs.djangoproject.com/en/3.0/topics/http/middleware/

新样式如下:

import time 
 
 
class StatsMiddleware: 
    def __init__(self, get_response): 
        self.get_response = get_response 
 
    def __call__(self, request): 
        start_time = time.time() 
 
        response = self.get_response(request) 
 
        duration = time.time() - start_time 
 
        # Add the header. Or do other things, my use case is to send a monitoring metric 
        response["X-Page-Generation-Duration-ms"] = int(duration * 1000) 
        return response 

无需在请求对象上存储开始时间并进行检索,因为这一切都发生在同一个方法中。

它也可以用简单的函数风格来代替类来完成:

import time 
 
 
def stats_middleware(get_response): 
 
    def middleware(request): 
        start_time = time.time() 
 
        response = get_response(request) 
 
        duration = time.time() - start_time 
 
        response["X-Page-Generation-Duration-ms"] = int(duration * 1000) 
        return response 
 
    return middleware