Django registrieren und anmelden - anhand eines Beispiels erklärt

8

Kann jemand bitte im Detail erklären, wie man eine Registrierung und Authentifizierung so einfach wie möglich macht? Ich habe eine Authentifizierung (Login) mit django.contrib.auth gemacht, aber was ich bekommen möchte, ist eine vollständige Registrierung (social / non) + login. Habe bereits django-allauth , django-social-auth , django-social gesehen, kann aber immer noch nicht ohne viel Hacking arbeiten. Habe gehört, dass django-registration und django-profiles es viel einfacher machen können, aber ich kann damit nicht umgehen. Zum Beispiel

%Vor%

braucht einen kleinen Hack zum arbeiten:

%Vor%

Das DjangoBook bietet einfache Beispiele für Kontakt- und Suchformulare . Aber ich kann es nicht auf Benutzerregistrierung und Anmeldung erweitern. Kann also jemand ein Beispiel für die Arbeit Registrierung und Anmeldung geben?

Aktualisieren

Hier ist ein einfaches Beispiel für die Anmeldung. Jetzt kommen django-allauth oder soziale Auth oder registration2 in Betracht ...

Update2

django-allauth scheint die beste Lösung für eine einfachere Authentifizierung zu sein. Fügen Sie Apps in den Einstellungen korrekt hinzu, registrieren Sie fb / google / etc-Apps und registrieren Sie sich über admin und verwenden Sie die Template-Vererbung, um das Standard-Seiten-Design zu ändern.

    
boldnik 03.06.2013, 17:00
quelle

2 Antworten

14

DIESES ist ein sehr gut Tutorial über login & amp; Co. Es erklärt sehr gut, wie man Login durch uns selbst ad überschreiben bestehende Django Login-Seiten.

UPDATE:

Hier Übersicht für Registrierung und Login. Weitere Informationen finden Sie unter dem Link.

Zur Registrierung:

  

Ansichten und URLs

     

Gehen Sie zum unteren Site-Ordner (wo sich die Datei settings.py befindet) und öffnen Sie ihn   die Datei views.py. An der Spitze stellen Sie sicher, dass die folgenden Importe sind   inbegriffen. Fügen Sie sie hinzu, wenn nicht:

%Vor%      

Fügen Sie darunter die folgenden Funktionen hinzu (Sie können sie nach der   Login-Funktionen):

%Vor%      

Öffnen Sie die urls.py-Datei im Site-Ordner (gleicher Ordner wie   settings.py). Unter urlpatterns = patterns ('', füge folgendes ein   Linien.

%Vor%      

Vorlagen Wir nehmen an, dass Ihre Website bereits über Vorlagen verfügt   Verzeichnis und eine Base.html-Datei mit der Navigationsleiste. Öffne das   base.html Datei und fügen Sie im Navigationselement einen Link zum Navigationsmenü hinzu   die Login-Seite

%Vor%      

Falls noch nicht vorhanden, gehen Sie zum Ordner templates und erstellen Sie   ein Ordner darin nannte die Registrierung. Erstellen Sie eine Datei namens   registration_form.html, speichern Sie es im Ordner templates / registration,   dann füllen Sie es mit den folgenden:

%Vor%      

Erstellen Sie eine Datei namens registration_complete.html, speichern Sie sie in der   templates / registration folder, und füllen Sie sie mit den folgenden:

%Vor%

Anmelden:

  

Ansichten und URLs Öffnen Sie die Datei views.py im unteren Site-Ordner (wo sich die Datei settings.py befindet). Wenn es keinen gibt, dann erzeuge und   Speichere es. Fügen Sie am Anfang der Datei den folgenden Import ein: from   django.shortcuts import render_to_response Darunter müssen Sie nur   Fügen Sie eine Funktion hinzu, die die eingeloggte Seite rendert. Die anderen Funktionen   (Login und Logout) befinden sich in der Datei views.py im Django Auth-Ordner.

%Vor%      

# Optional, wenn Sie ihren Benutzernamen bei der Anmeldung anzeigen möchten, rufen Sie ihren Benutzernamen in der Ansicht auf. Ändern Sie die eingeloggte Funktion zu:

%Vor%      

Öffnen Sie die Datei urls.py im Site-Ordner (derselbe Ordner wie settings.py).   Unterhalb von urlpatterns = patterns ('', fügen Sie die folgenden Zeilen ein.

%Vor%      

Mit simplesite ist der Name des Ordners, der die Datei views.py enthält   Datei, die Sie anrufen. Öffnen Sie die Datei settings.py und unten   Code eingeben%. Djangos Standard   ist, bei der Anmeldung nach / accounts / profile umzuleiten, was in Ordnung ist   Sie haben eine Profilseite an dieser URL. Wenn nicht, müssen Sie Ihre ändern   Standardeinstellungen für die Login-Weiterleitungs-URL zu derjenigen, die Ihre URL enthält   loggedin.html Seite.

     

Vorlagen

     

Wir nehmen an, dass Ihre Site bereits ein Vorlagenverzeichnis und eine   base.html Datei mit der Navigationsleiste. Öffnen Sie die Datei base.html und in   Das Navigationselement fügt einen Link zum Navigationsmenü zur Anmeldeseite hinzu LOGIN_REDIRECT_URL = '/accounts/loggedin/' Fügt einen Link zur Abmeldung hinzu <a href="/accounts/login">login</a> Erzeugt ein Verzeichnis namens   Registrierung im Vorlagenordner. Wenn Sie dies durch die tun   Befehlszeile, geben Sie mkdir registration ein Erstellen Sie eine Datei namens login.html,   Speichern Sie es im Ordner templates / registration, und füllen Sie es mit dem   Folgendes:

%Vor%      

<a href="/accounts/logout">logout</a> verwendet das Django Forms-Modul zum Erstellen des Formulars.   Sie können ein unformatiertes Formular erstellen, indem Sie {{ form.as_table }} ohne das verwenden   HTML-Tabellentags oder jedes Feld wird in Absatztags mit {{ form }} oder als ungeordnete Liste {{ form.as_p }} eingefügt. Optional, du   Sie können auch Ihre eigene Formularstruktur erstellen und die Formularfeld-Tags verwenden   wie folgt:

%Vor%      

Erstellen Sie eine Datei mit dem Namen loggedin.html und speichern Sie sie in der   templates / registration folder, und füllen Sie sie mit den folgenden:

%Vor%      

Wenn Sie den Benutzernamen anzeigen möchten, würden Sie die Anpassung vornehmen   die Ansicht, die im Abschnitt "Ansichten" erläutert wird. Dann ändere die gelogged.html   Vorlage nach unten (ändern Sie den Wortlaut, wie Sie es für richtig halten):

%Vor%      

Erstellen Sie eine Datei namens logged_out.html, speichern Sie sie in der   templates / registration folder und füllen Sie sie mit folgendem:

%Vor%
    
Trix 06.05.2015 08:08
quelle
0

Trix 'Herangehensweise hat für mich funktioniert, aber der Abmelde-Link wurde zur Abmeldung von admin anstatt von logged_out.html umgeleitet.

Um die Weiterleitung zu beheben, fügte ich eine neue Option zu href hinzu:

%Vor%

In Vorlagen / Registrierung:

Umbenannt logged_out.html in loggedout.html ; Der Unterstrich führte dazu, dass er immer noch zur Administrator-Abmeldeseite weitergeleitet wurde.

In views.py:

%Vor%

Und schließlich in urls.py:

%Vor%     
modle13 16.08.2015 03:33
quelle