urlmiddleware è un'applicazione Django che permette di definire middleware nel progetto Django basato su configurazioni url piuttosto che aggiungere middleware a livello globale per ogni singola richiesta.
Perché?
L'aggiunta di middleware a livello globale non è sempre una buona cosa. Si consiglia solo perché abbia effetto su alcune aree nel tuo sito web. Applicazioni di terze parti possono anche includere quindi le loro definizioni middleware nel file url.py e rimuovere la necessità di modificare le impostazioni globali.
Quick Start
Installare urlmiddleware:
pip installare urlmiddleware
Non c'è bisogno di aggiungere che per le applicazioni installate, tuttavia, si ha bisogno di registrarsi una classe middleware globale che poi controllare il middleware basato url:
MIDDLEWARE_CLASSES = (
& Nbsp; # ...
& Nbsp; # aggiungere urlmiddleware dopo tutti gli altri middleware.
& Nbsp; 'urlmiddleware.URLMiddleware',
)
Iniziare ad aggiungere middleware al progetto nei file url.py qui sotto le vostre normali definizioni url:
middlewarepatterns = pattern ('',
& Nbsp; url (r '^ frontend /', MyMiddleWareClass),
)
Un esempio comune sta usando questa tecnica per aggiungere login richiesto di sotto intere sezioni del vostro albero url. Per prima cosa è necessario creare una LoginRequiredMiddleware:
da django.conf impostazioni di importazione
da django.contrib.auth.views login importazione
da django.http importazione HttpResponseRedirect
Classe LoginRequiredMiddleware (oggetto):
& Nbsp; def process_request (self, richiesta):
& Nbsp; login_path = settings.LOGIN_URL
& Nbsp; se request.path = login_path e request.user.is_anonymous ():
& Nbsp; se request.POST:
& Nbsp; ritorno login (richiesta)
& Nbsp; il resto:
& Nbsp; tornare HttpResponseRedirect ('% s next =% s?'% (Login_path, request.path))
Poi, nel file urls.py:
da myapp.middleware LoginRequiredMiddleware importazione
middlewarepatterns = pattern ('',
& Nbsp; url (r '^ conti /', LoginRequiredMiddleware),
)
! Fatto
Requisiti
- Python
- Django
I commenti non trovato