Maison >développement back-end >Tutoriel Python >Comment implémenter des intercepteurs dans le middleware Django

Comment implémenter des intercepteurs dans le middleware Django

不言
不言original
2018-06-02 14:28:213084parcourir

Cet article présente principalement la méthode d'implémentation des intercepteurs dans le middleware Django. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

1. >

Nous connaissons tous l'intercepteur de JavaWeb Struts2 Avant que la requête ne soit transmise à Action pour traitement, elle est d'abord traitée dans l'intercepteur, puis transmise à Action après traitement.

Comment obtenir le même effet dans Django ?

2. Middleware Django

Voici la structure de répertoires de mon projet.

Tout d'abord, créez un nouveau fichier nommé middleware.py dans le répertoire de l'application (c'est-à-dire le répertoire Web de mon projet)

Ajoutez le code suivant à l'intérieur :

try:
from django.utils.deprecation import MiddlewareMixin # Django 1.10.x
except ImportError:
MiddlewareMixin = object # Django 1.4.x - Django 1.9.x
class SimpleMiddleware(MiddlewareMixin):
def process_request(self, request):
return None
def process_response(self, request, response):
return response

Traitez la demande dans process_request et traitez la réponse dans process_response.

Dans la méthode process_request, lorsque la valeur de retour est un objet de type HttpResponse, elle n'est pas transmise au contrôleur ordinaire pour traitement, mais est renvoyée directement au navigateur. Lorsque la valeur de retour est None, le. la demande est transmise au responsable du traitement ordinaire après traitement par le contrôleur.

Le middleware que nous venons de créer dans la configuration middleware du fichier settings.py.

À ce stade, la configuration de travail de l'utilisation du middleware comme intercepteur est terminée.

Recommandations associées :

Méthodes pour renvoyer directement les requêtes du middleware Django

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn