urlmiddleware ay isang Django app na nagbibigay-daan sa iyo upang tukuyin middleware sa iyong proyekto Django batay sa pagsasaayos url sa halip ng pagdaragdag ng middleware globally sa bawat solong kahilingan.
Bakit?
Pagdaragdag ng middleware globally ay hindi palaging isang magandang bagay. Maaari lamang na gusto mo ito upang magkabisa sa mga tiyak na lugar sa iyong website. Maaari din pagkatapos ay isama ang mga third party na apps ang kanilang mga kahulugan middleware sa url.py file at tanggalin ang kailangan para sa iyo upang baguhin ang global settings.
Quick Start
I-install ang urlmiddleware:
PIP install urlmiddleware
Hindi na kailangan upang idagdag ito sa iyong naka-install na apps, gayunpaman, kailangan mo upang magrehistro ng isa global middleware klase na pagkatapos ay makontrol ang url batay middleware:
MIDDLEWARE_CLASSES = (
& Nbsp; # ...
& Nbsp; # magdagdag urlmiddleware matapos ang lahat ng iba pang mga middleware.
& Nbsp; 'urlmiddleware.URLMiddleware',
)
Simulan ang pagdaragdag ng middleware sa iyong proyekto sa iyong url.py file sa ibaba ng iyong normal na mga kahulugan url:
middlewarepatterns = pattern ('',
& Nbsp; url (r '^ myapp /', MyMiddleWareClass),
)
Ang isang karaniwang halimbawa ay gumagamit ng diskarteng ito upang magdagdag ng na kinakailangan upang buong sub seksyon ng iyong url puno login. Una kailangan mong lumikha ng isang LoginRequiredMiddleware:
mula django.conf settings import
mula django.contrib.auth.views login import
mula django.http import HttpResponseRedirect
klase LoginRequiredMiddleware (object):
& Nbsp; def process_request (self, kahilingan):
& Nbsp; login_path = settings.LOGIN_URL
& Nbsp; kung request.path = login_path at request.user.is_anonymous ():
& Nbsp; kung request.POST:
& Nbsp; return login (kahilingan)
& Nbsp; pa:
& Nbsp; bumalik HttpResponseRedirect ('% s susunod =% s'% (login_path, request.path))
At sa iyong urls.py file:
mula myapp.middleware import LoginRequiredMiddleware
middlewarepatterns = pattern ('',
& Nbsp; url (r '^ accounts /', LoginRequiredMiddleware),
)
! Tapos
Kinakailangan :
- sawa
- Django
Mga Komento hindi natagpuan