** 2/28 Correction de l'oubli de télécharger des fichiers dans le référentiel. .. .. ** **
Créez et utilisez votre propre middleware avec Django.
Prétraitement et traitement des demandes dans la vue Les demandes et réponses sont traitées comme un post-traitement de la vue.
middlewares
|_ __init__.py
|_ sample_middleware.py
sample_middleware.py
class SampleMiddleware(object):
"""
Exemple de middleware,
Avant que la demande ne soit traitée par view et
Affichez simplement une chaîne à l'écran avant que la réponse ne soit renvoyée au client
"""
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
self.process_request(request) #Prétraitement
response = self.get_response(request) #Afficher le traitement
self.process_response(request, response) #Post-traitement
return response
def process_request(self, request):
print("Traitement de la demande")
def process_response(self, request, response):
print("Traitement des réponses")
Correctement préparé pour le routage et les vues. Toute méthode de pré-traitement et de post-traitement peut être ajoutée (Bien sûr, il n'est pas nécessaire que ce soit process_ ~~)
settings.Extrait de py
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'middleware_sample.middlewares.sample_middleware.SampleMiddleware',
]
Lorsque vous accédez à http://127.0.0.1:8000/test/ avec un navigateur, Le contenu suivant s'affiche.
Affichage du terminal côté serveur lors de l'accès au navigateur
Traitement de la demande
Vue de traitement pour l'échantillon
Traitement des réponses
[27/Feb/2017 14:11:02] "GET /test/ HTTP/1.1" 200 22
J'ai publié l'exemple de code sur GitHub https://github.com/Fufuhu/DjangoMiddlewareSample
Recommended Posts