[PYTHON] Créez votre propre middleware Django

** 2/28 Correction de l'oubli de télécharger des fichiers dans le référentiel. .. .. ** **

Objectif

Créez et utilisez votre propre middleware avec Django.

environnement

Quel est le middleware de 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.

la mise en oeuvre

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_ ~~)

Méthode de réglage

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',
]

mouvement

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

référence

J'ai publié l'exemple de code sur GitHub https://github.com/Fufuhu/DjangoMiddlewareSample

Recommended Posts

Créez votre propre middleware Django
[Django] Créez votre propre page d'erreur 403, 404, 500
Créez votre propre exception
Créez vos propres commandes Linux en Python
[LLDB] Créez votre propre commande avec Python
Créez votre propre serveur DNS avec Twisted
Créez un modèle pour votre planning Django
Créez votre propre valeur composite avec SQLAlchemy
Création de la première application avec Django startproject
Créez une roue de votre propre module OpenCV
Initialiser l'application Django
Créer une liste Django Todo
Mémo pour créer votre propre Box avec le Python de Pepper
Créez votre propre Big Data en Python pour validation
Créez votre propre stéréogramme aléatoire (RDS) en Python.
[Blender x Python] Créez votre propre fonction et résumé jusqu'à présent
Créer une API avec Django
Les débutants de Django créent des applications simples 3
Les débutants de Django créent des applications simples 1
Réglage du site d'administration de Django
Création de liste de tâches [Python Django]
Créer une page d'accueil avec django
Shell pour créer un projet django
Les débutants de Django créent des applications simples 2
Créer un écran de connexion Django
Installez Django sur Mac
Créer et lister des modèles Django
Apprentissage par renforcement 23 Créez et utilisez votre propre module avec Colaboratory
Les débutants de Django créent des applications simples 5
Créez votre propre classe de structure graphique et son dessin avec python
Essayez docker: créez votre propre image de conteneur pour une application Web Python
Créez votre propre plateforme IoT en utilisant raspberrypi et ESP32 (partie 1)
[Python] Créez votre propre bot LINE
Créez votre propre manuel. [Linux] [homme]
[Python] journalisation dans votre propre module
Enregistrer l'application Django dans le projet
Résolvez votre propre labyrinthe avec Q Learning
Créer une nouvelle application utiliser python, django
Déployer l'application Django sur Heroku
Essayez d'implémenter k-NN par vous-même
Jusqu'à ce que vous hébergiez vous-même votre propre interprète
Reliez ROS à votre propre protocole
Entraînez UGATIT avec votre propre jeu de données
Résolvez votre propre labyrinthe avec DQN
Créer un téléchargeur de fichiers avec Django
Créer un bot LINE avec Django
Créez votre propre caméra virtuelle avec Python + OpenCV et appliquez des effets originaux