urlmiddleware yra Django programa, kuri leidžia jums nustatyti tarpinę savo Django projekto remiantis URL konfigūracijų, o ne pridedant tarpinę visame pasaulyje į kiekvieną prašymą.
Kodėl? "
Įrašyta tarpinės, visame pasaulyje yra ne visada geras dalykas. Galbūt Jūs norite, kad ji įsigalios nuo tam tikrų sričių į savo svetainę tik. Trečiųjų šalių programos taip pat gali tada įtraukti jų tarpinės apibrėžimus url.py failą ir pašalinti jums keisti visuotinius nustatymus poreikį.
"Quick Start"
Įdiekite urlmiddleware:
PIP įdiegti urlmiddleware
Nereikia pridėti jį prie savo įdiegtų apps, tačiau, jums reikia užsiregistruoti vieną pasaulinį tarpinės klasę, kuri bus kontroliuoti URL remiantis tarpinę:
MIDDLEWARE_CLASSES = (
& Nbsp; # ...
& Nbsp; # pridėti urlmiddleware visos kitos tarpinės.
& Nbsp; "urlmiddleware.URLMiddleware"
)
Pradėti pridedant tarpinė projektą savo url.py failų žemiau savo įprastą URL apibrėžimus:
middlewarepatterns = modeliai (''
& Nbsp; URL (R '^ MyApp / "MyMiddleWareClass)
)
Bendras pavyzdys, naudojant šią techniką pridėti prisijungimo reikalingą sveikų sub skyriuose URL medį. Pirmiausia jums reikės sukurti LoginRequiredMiddleware:
nuo django.conf importo nustatymus
nuo django.contrib.auth.views importo Prisijungti
nuo django.http importo HttpResponseRedirect
klasė LoginRequiredMiddleware (objektas):
& Nbsp; Def process_request (savarankiškai, prašymas):
& Nbsp; login_path = settings.LOGIN_URL
& Nbsp; jei request.path = login_path ir request.user.is_anonymous (!):
& Nbsp; jei request.POST:
& Nbsp; grąža Slapyvardis (prašymas)
& Nbsp; dar:
& Nbsp; sugrįžti HttpResponseRedirect ("% s Kitą ="% s? "% (Login_path, request.path))
Tada jūsų urls.py failą:
nuo myapp.middleware importo LoginRequiredMiddleware
middlewarepatterns = modeliai (''
& Nbsp; URL (R '^ sąskaitos / "LoginRequiredMiddleware)
)
! Priimta p>
Reikalavimai
- Python,
- Django
Komentarai nerastas