-vederi django-privat
este o aplicatie Django, care oferă un model comun în site-uri este atunci când câteva pagini sunt protejate și necesită o conectare pentru a fi accesate. & nbsp; decoratorlogin_required de multe ori vine la îndemână pentru aceste situații. Dar, un alt model care este destul de comună este atunci când cea mai mare parte a site-ului este protejat, cu doar câteva excepții de pagini care rămân public (de exemplu, FrontPage, pagina de înregistrare, etc.). În acest caz, poate fi destul de plictisitor pentru a decora toate punctele de vedere culogin_required, și poate fi ușor de uitat pentru a decora unele dintre ele.
django--vizualizări privat protejează fiecare vedere și apoi vă permite să vă spun în mod explicit care vizualizări trebuie să fie publice. Acest lucru face ca lucrurile atât mai ușoară și mai puțin predispusă la erori.
Instalare
Instalați-Django privat-vederi din PyPI.
PIP instala django-privat-vizualizări
Adăugați middleware privateviews la setările:
MIDDLEWARE_CLASSES = (
& Nbsp; ...
& Nbsp; privateviews.middleware.LoginRequiredMiddleware
)
Declararea opiniile publice
În acest moment, toate punctele de vedere, cu excepția settings.LOGIN_URL vă va solicita să vă conectați. Deci, avem acum nevoie pentru a specifica cateva opiniile care ar trebui să fie publice. Există trei moduri diferite aflate la discreția dvs.: cu ajutorul unui decorator special, prospectul opiniile publice, sau prospectul căile URL publice.
Folosind un decorator
Folosindlogin_not_required puteți forța în mod explicit pentru a fi publice. De exemplu:
de la privateviews.decorators login_not_required import
login_not_required
def FrontPage (cerere):
& Nbsp; ...
În acest caz, punctul de vedere FrontPage va fi afișat în mod corespunzător, chiar dacă v-rsquo; re nu autentificat.
Listarea opiniile publice
Dacă nu-rsquo; t au acces direct la a modifica o imagine și rsquo; s cod (de exemplu, IT & rsquo; s într-o aplicație terță parte), încă mai pot obliga acest punct de vedere pentru a fi publice prin adăugarea la setarea PUBLIC_VIEWS în fișierul de setări. Aici & rsquo; s un exemplu, dacă v-rsquo; re folosind sistemul django.contrib.auth și aplicarea django-înregistrare:
PUBLIC_VIEWS = [
& Nbsp; "django.contrib.auth.views.login",
& Nbsp; "django.contrib.auth.views.password_reset_done",
& Nbsp; "django.contrib.auth.views.password_reset",
& Nbsp; "django.contrib.auth.views.password_reset_confirm",
& Nbsp; "django.contrib.auth.views.password_reset_complete",
& Nbsp; "registration.views.register",
& Nbsp; "registration.views.activate",
]
Căi publice URL Listarea
A treia și ultima cale este de a specifica în mod direct căile URL (ca expresii regulate) pentru paginile pe care doriți să fie publice. Acest lucru poate fi util, de exemplu, în cazul în care o pagină este pronunțată de o vedere generic. De asemenea, este util dacă se servesc fișierele media static prin Django (recomandat numai în modul de dezvoltare). Pentru că, trebuie să adăugați PUBLIC_PATHS stabilesc în fișierul de setări. Aici & rsquo; s un exemplu:
PUBLIC_PATHS = [
& Nbsp; "^% s '% MEDIA_URL,
& Nbsp; "^ / conturi / Inregistrare / complet / $ ', # Utilizează" direct_to_template "punctul de vedere generic
]
Efectuarea 404 vizualizări privat
În acest moment ne-autentificat utilizatorii vor fi în continuare posibilitatea de a vedea 404 de răspunsuri dacă vizitează o adresă URL care nu harta pentru o vizualizare. Asta nu e ideală, deoarece nu ar trebui să fie posibil să se determine structura site-ului fără a fi autentificat.
Pentru a face 404 vizualizări private pentru toată lumea, cu excepția autentificat utilizatorii, adăugați următoarele ca linia finală în nivelul urlconf dumneavoastră de top:
urlpatterns = tipare ('',
& Nbsp; ...
& Nbsp; url (r '^', 'privateviews.views.private_404 ")
)
Cerințe :
- Python
- Django
Comentariile nu a fost găsit