urlmiddleware est une application Django qui vous permet de définir middleware dans votre projet Django basée sur des configurations d'URL plutôt que d'ajouter middleware globalement à toutes les demandes.
Pourquoi?
Ajout de middleware à l'échelle mondiale est pas toujours une bonne chose. Vous ne voudrez peut-être à prendre effet sur certaines zones de votre site web. Applications tierces peuvent également alors comprendre leurs définitions de middleware dans le fichier url.py et retirez la nécessité pour vous de modifier les paramètres globaux.
Quick Start
Installez urlmiddleware:
pip installer urlmiddleware
Il n'y a pas besoin de l'ajouter à vos applications installées, cependant, vous ne devez enregistrer une classe de middleware globale qui sera ensuite contrôler le middleware basé url:
MIDDLEWARE_CLASSES = (
& Nbsp; # ...
& Nbsp; # ajouter urlmiddleware après tous les autres middleware.
& Nbsp; »urlmiddleware.URLMiddleware ',
)
Commencer à ajouter middleware à votre projet dans vos fichiers url.py ci-dessous vos définitions d'URL normales:
middlewarepatterns = patterns ('',
& Nbsp; url (r '^ myapp /', MyMiddleWareClass),
)
Un exemple courant est d'utiliser cette technique pour ajouter connexion requises pour des pans entiers de sous de votre arbre URL. Vous devez d'abord créer un LoginRequiredMiddleware:
à partir de paramètres django.conf d'importation
de django.contrib.auth.views importation connexion
de django.http importation HttpResponseRedirect
LoginRequiredMiddleware classe (objet):
& Nbsp; def process_request (auto, demande):
& Nbsp; login_path = settings.LOGIN_URL
& Nbsp; si request.path = login_path et request.user.is_anonymous (!):
& Nbsp; si request.POST:
& Nbsp; retour connexion (demande)
& Nbsp; d'autre:
& Nbsp; retourner HttpResponseRedirect ('% s next =% s?'% (Login_path, request.path))
Ensuite, dans votre fichier urls.py:
de LoginRequiredMiddleware d'importation myapp.middleware
middlewarepatterns = patterns ('',
& Nbsp; url (r '^ comptes /', LoginRequiredMiddleware),
)
! Fait
Exigences :
- Python
- Django
Commentaires non trouvées