Anmelden
Teil des Abschnitts Benutzer und Konten der Django-Journey von Coddy. Lektion 2 von 16.
Die Website kann erkennen, wer angemeldet ist, aber sie hat keine Seite zum Anmelden. Django stellt die Ansicht LoginView bereit. Eine Zeile in der urls.py des Projekts bindet sie zusammen mit den Abmelde- und Passwortseiten ein:
path("accounts/", include("django.contrib.auth.urls")),Nun gibt es /accounts/login/ mit dem Namen login. Die Ansicht rendert registration/login.html mit einem form, das ein Feld für username und eines für password enthält. Diese Vorlage schreibst du selbst: ein gewöhnliches POST-Formular. Django sucht im Ordner templates/ jeder App. Der Pfad beginnt mit registration/, nicht mit notes/, weil Djangos Ansicht deine App nicht kennt.
Nach erfolgreicher Anmeldung leitet die Ansicht zu LOGIN_REDIRECT_URL weiter. Der Standardwert /accounts/profile/ existiert hier nicht. Lege ihn daher in settings.py fest.
Aufgabe
EinfachFüge eine Anmeldeseite hinzu.
- Binde in
mysite/urls.pydjango.contrib.auth.urlsunteraccounts/ein. - Erstelle
notes/templates/registration/login.html, dasnotes/base.htmlerweitert undformin einem POST-Formular mit{% csrf_token %}und einer Schaltfläche „Log in“ anzeigt. - Setze in
settings.pyLOGIN_REDIRECT_URLauf"/". - Verlinke in
base.htmlfür abgemeldete Besucher „Log in“ mit{% url 'login' %}.
Melde dich als ada an (Passwort coddy-pass-123): In der Kopfzeile steht „Signed in as ada“.
Probier es selbst
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path("admin/", admin.site.urls),
path("", include("notes.urls")),
]
Alle Lektionen in Benutzer und Konten
Übe selbstständig: Django-Playground