Ces suivent middleware dans mon projet:Pourquoi cela prend-il plus de temps pour accéder à la vue après avoir croisé le middleware dans Django?
MIDDLEWARE_CLASSES = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'simple_history.middleware.HistoryRequestMiddleware',
'apps.quiz.totaltimemid.TimeCalculateMiddleware',
]
Mon middleware personnalisé pour mesurer le temps pour atteindre process_view du dernier middleware à mon point de vue cible (classe QuizFetchView (APIView)):
class TimeCalculateMiddleware(object):
def process_view(self, request, callback, callback_args,
callback_kwargs):
self.req_start_time = time.time()
def process_response(self,request, response):
try :
response['vreach_time'] = float(response['tt_start']) - self.req_start_time
return response
except :
return response
vue cible :
class QuizFetchView(APIView):
permission_classes = [IsAuthenticated, IsAuthenticatedForRunningQuiz]
def get(self, request: Request, key: str) -> Response:
tt_start = time.time()
..............
..............
............
Response['tt_start'] = tt_start
return Response
Pour la demande de connexion middleware à afficher prendre quelques millisecondes, mais demande ultérieure autre que la connexion prendre 25- 35ms pour atteindre la vue.
S'il vous plaît aidez-moi, je vous remercie
Il serait très difficile de savoir pourquoi il est lent sans regarder le code que vous avez supprimé. Il pourrait y avoir un certain nombre de raisons pour lesquelles cela se produit. Premier parmi eux serait une requête mal indexée. – vignesh
Je veux calculer le temps qu'il faut pour atteindre la vue cible –
Ah j'ai mal compris la question. BTW comment êtes-vous capable de ce 'Response ['tt_start'] = tt_start' sans aucune exception. La réponse n'est-elle pas un type? J'essayais de répliquer votre code dans mon côté, mais cela générait une erreur. – vignesh