2015-04-08 2 views

Répondre

1

Vous pouvez encapsuler tous les autres logiciels intermédiaires. Dans votre middleware le plus externe, au process_request, démarrez le profilage. J'utilise généralement profile.enable() et profile.disable() avec une instance cProfile.Profile, cela me permet de démarrer et d'arrêter le profilage à un point arbitraire, alors que profile.runcall() exige que vous appeliez une fonction réelle, ce qui n'est pas le cas du middleware dans Django.

Dans votre middleware le plus interne, définissez process_view() pour renvoyer simplement HttpResponse(''). De cette façon, la vue elle-même n'est pas appelée et ne sera pas incluse dans votre profil.

Ensuite, dans votre middleware le plus externe, définissez à nouveau process_response() pour arrêter le profilage et afficher le profil dans le navigateur ou dans un fichier.

0

Si vous souhaitez supprimer tout autre élément que le middleware des résultats de profilage, vous pouvez simplement créer une vue vide qui renvoie une réponse HttpResponse vide.

+0

La fonctionnalité de l'intergiciel peut très bien dépendre de la vue appelée ou de l'URL à laquelle accéder. – knbk