Tôi muốn kiểm tra thời gian thực hiện các lượt xem trong trang web của mình. Điều này có thể được thực hiện bởi các trang trí, nhưng vì tôi có hàng chục lượt xem, tôi đã nghĩ đến việc thực hiện nó trong một phần mềm trung gian, tiết kiệm thời gian đầu tiên trong từ điển với yêu cầu như một khóa (xem bên dưới), nhưng tôi lo lắng về các giả định mà tôi đã tạo (xem xa hơn dưới đây):Đo thời gian thực hiện xem trong phần mềm trung gian Django - ý tưởng hay?
class SlowWarningMiddleware:
def __init__(self):
self.time_tracking = {}
def process_view(self, request, view_func, view_args, view_kwargs):
self.time_tracking[request] = time.time()
def process_response(self, request, response):
if request not in self.time_tracking:
return response
delta = time.time() - self.time_tracking[request]
def process_exception(self, request, exception):
if request not in self.time_tracking:
return
delta = time.time() - self.time_tracking[request]
mã này giả định hai điểm:
- cùng dụ middleware xử lý trước khi xem và post-view logic.
- Phiên bản yêu cầu vẫn giữ nguyên dạng xem trước và sau khi xem.
các giả định này có an toàn không? là phần mềm trung gian này có phải là một ý tưởng hay không?