urlmiddleware is 'n Django app wat jou toelaat om middleware definieer in jou Django projek gebaseer op url konfigurasies eerder as die toevoeging van middleware wêreldwyd elke enkele aanvraag.
Hoekom?
Toevoeging van middleware wêreldwyd is nie altyd 'n goeie ding. Jy mag slegs dit wil tree op sekere gebiede in jou webwerf. Derde party programme kan ook dan sluit hul middleware definisies in die url.py lêer en verwyder die noodsaaklikheid vir jou om globale instellings te verander.
Quick Start
Installeer urlmiddleware:
PIP urlmiddleware installeer
Daar is geen behoefte om dit toe te voeg tot jou geïnstalleer apps, maar nie nodig om te registreer een globale middleware klas wat dan beheer oor die url gebaseer middleware:
MIDDLEWARE_CLASSES = (
& Nbsp; # ...
& Nbsp; # voeg urlmiddleware nadat alle ander middleware.
& Nbsp; 'urlmiddleware.URLMiddleware,
)
Begin byvoeg middleware om jou projek in jou url.py lêers onder jou normale url definisies:
middlewarepatterns = patrone ('',
& Nbsp; url (r '^ myapp /', MyMiddleWareClass),
)
'N Algemene voorbeeld is die gebruik van hierdie tegniek om login nodig is om die hele sub afdelings van jou url boom by te voeg. Eerstens moet jy 'n LoginRequiredMiddleware skep:
van django.conf instellings invoer
van django.contrib.auth.views invoer login
van django.http invoer HttpResponseRedirect
klas LoginRequiredMiddleware (voorwerp):
& Nbsp; def process_request (self, versoek):
& Nbsp; login_path = settings.LOGIN_URL
& Nbsp; as request.path = login_path en request.user.is_anonymous ()!
& Nbsp; as request.POST:
& Nbsp; terugkeer login (versoek)
& Nbsp; anders:
& Nbsp; terugkeer HttpResponseRedirect ('% s% s volgende =? "% (Login_path, request.path))
Dan in jou urls.py lêer:
van myapp.middleware invoer LoginRequiredMiddleware
middlewarepatterns = patrone ('',
& Nbsp; url (r '^ rekeninge /', LoginRequiredMiddleware),
)
! Gedoen
Vereistes :
- Python
- Django
Kommentaar nie gevind