


Detaillierte Erläuterung des Authentifizierungsmoduls von Django (Benutzerauthentifizierung)
Dieser Artikel stellt hauptsächlich die detaillierte Erklärung des Authentifizierungsmoduls von Django (Benutzerauthentifizierung) vor. Jetzt teile ich es mit Ihnen und gebe es als Referenz. Schauen wir uns das gemeinsam an
Das Authentifizierungsmodul ist eine Kapselung der Anmeldeauthentifizierungsmethode. Nachdem wir zuvor den vom Benutzer eingegebenen Benutzernamen und das Kennwort erhalten hatten, mussten wir abfragen, ob dies der Fall ist ist ein Benutzer aus der Benutzertabelle.
Mit dem Authentifizierungsmodul können Sie leicht überprüfen, ob die Anmeldeinformationen des Benutzers in der Datenbank vorhanden sind.
Darüber hinaus kapselt die Authentifizierung auch die Sitzung, damit wir überprüfen können, ob sich der Benutzer angemeldet hat
Methoden in der Authentifizierung
Wenn Sie die Authentifizierungsmodul-Methode verwenden möchten, müssen Sie zuerst das Authentifizierungsmodul importieren
from django.contrib import auth
django.contrib.auth bietet hier viele Methoden Wir stellen hauptsächlich vier davon vor:
1, Authenticate()
bietet eine Benutzerauthentifizierung, dh um zu überprüfen, ob Benutzername und Passwort korrekt sind, im Allgemeinen der Benutzername erforderlich Das Passwort, zwei Schlüsselwortparameter
Wenn die Authentifizierungsinformationen gültig sind, wird ein Benutzerobjekt zurückgegeben. Authenticate() legt ein Attribut für das Benutzerobjekt fest, um zu identifizieren, welches Authentifizierungs-Backend den Benutzer authentifiziert hat. Diese Informationen werden im nachfolgenden Anmeldevorgang benötigt. Wenn wir versuchen, uns ohne Authenticate() bei einem Benutzerobjekt anzumelden, das direkt aus der Datenbank entnommen wird, wird ein Fehler gemeldet! !
user = authenticate(username='someone',password='somepassword')
2, login(HttpRequest, Benutzer)
Diese Funktion akzeptiert ein HttpRequest-Objekt und ein Authentifiziertes Benutzerobjekt
Diese Funktion verwendet das Sitzungsframework von Django, um eine Sitzungs-ID und andere Informationen an einen authentifizierten Benutzer anzuhängen.
from django.contrib.auth import authenticate, login def my_view(request): username = request.POST['username'] password = request.POST['password'] user = authenticate(username=username, password=password) if user is not None: login(request, user) # Redirect to a success page. ... else: # Return an 'invalid login' error message. ...
3. Abmelden (Anfrage) Abmelden des Benutzers
Diese Funktion akzeptiert ein HttpRequest-Objekt und gibt keinen Wert zurück. Wenn diese Funktion aufgerufen wird, werden alle Sitzungsinformationen für die aktuelle Anfrage gelöscht. Auch wenn der Benutzer nicht angemeldet ist, wird bei Verwendung dieser Funktion kein Fehler gemeldet.
from django.contrib.auth import logout def logout_view(request): logout(request) # Redirect to a success page.
4. is_authenticated() des Benutzerobjekts
Anforderungen:
1 Benutzer können auf bestimmte Seiten nur zugreifen, nachdem sie sich angemeldet haben.
2 Wenn der Benutzer auf die Seite zugreift, ohne sich anzumelden, wird direkt zur Anmeldeseite gesprungen
3 Nachdem der Benutzer die Anmeldung abgeschlossen hat Wenn Sie die Anmeldeschnittstelle überspringen, springt der Zugriff automatisch zur zuvor besuchten Adresse
Methode 1:
Verwenden Sie direkt die is_authenticated()-Methode der Authentifizierung, um
< zu überprüfen 🎜>def my_view(request): if not request.user.is_authenticated(): return redirect('%s?next=%s' % (settings.LOGIN_URL, request.path))
Methode 2:Überprüfen Sie anhand von request.user.username. Wenn es leer ist, bedeutet dies, dass Sie nicht angemeldet sind
def my_view(request): if not request.user.username: return redirect('%s?next=%s' % (settings.LOGIN_URL, request.path))
from django.contrib.auth.decorators import login_required @login_required def my_view(request): ...
Benutzerobjekt
Benutzerobjektattribute: Benutzername, Passwort (erforderlich) Das Passwort wird mithilfe eines Hash-Algorithmus in der Datenbank gespeichert is_staff: Ob der Benutzer über Administratorrechte für die Website verfügt.is_active: Ob sich der Benutzer anmelden darf, auf „Falsch“ gesetzt, Sie können dem Benutzer die Anmeldung verbieten, ohne die zu löschen user2.1. is_authenticated()
Wenn es sich um ein echtes User-Objekt handelt, ist der Rückgabewert immer True. Wird verwendet, um zu überprüfen, ob der Benutzer die Authentifizierung bestanden hat. Das Bestehen der Authentifizierung bedeutet nicht, dass der Benutzer über Berechtigungen verfügt, noch wird überprüft, ob der Benutzer aktiv ist. Es bedeutet lediglich, dass der Benutzer die Authentifizierung erfolgreich bestanden hat. Diese Methode ist sehr wichtig. Verwenden Sie request.user.is_authenticated() im Hintergrund, um festzustellen, ob sich der Benutzer angemeldet hat. Wenn wahr, request.user.name2.2, Benutzer erstellen
Verwenden Sie die Hilfsfunktion „create_user“, um einen Benutzer zu erstellen:from django.contrib.auth.models import User user = User.objects.create_user(username='',password='',email='')
2.3, check_password(passwd)
user = User.objects.get(username=' ') if user.check_password(passwd): ......
user = User.objects.get(username='') user.set_password(password='') user.save
2.5, einfaches Beispiel
Registrierung :def sign_up(request): state = None if request.method == 'POST': password = request.POST.get('password', '') repeat_password = request.POST.get('repeat_password', '') email=request.POST.get('email', '') username = request.POST.get('username', '') if User.objects.filter(username=username): state = 'user_exist' else: new_user = User.objects.create_user(username=username, password=password,email=email) new_user.save() return redirect('/book/') content = { 'state': state, 'user': None, } return render(request, 'sign_up.html', content)
@login_required def set_password(request): user = request.user state = None if request.method == 'POST': old_password = request.POST.get('old_password', '') new_password = request.POST.get('new_password', '') repeat_password = request.POST.get('repeat_password', '') if user.check_password(old_password): if not new_password: state = 'empty' elif new_password != repeat_password: state = 'repeat_error' else: user.set_password(new_password) user.save() return redirect("/log_in/") else: state = 'password_error' content = { 'user': user, 'state': state, } return render(request, 'set_password.html', content)
Benutzertabelle selbst erstellen
Es ist zu beachten, dass alle oben genannten Vorgänge für die von Django automatisch erstellte Tabelle auth_user gelten. Wir können uns die Struktur dieser Tabelle ansehen继承表的好处是我们可以增加一些自己需要的字段,并且同时可以使用auth模块提供的接口、方法
下面就讲一下继承auth的方法:
1、导入AbstractUser类,并且写一个自定义的类,继承AbstractUser类,如下:
from django.contrib.auth.models import AbstractUser class UserInfo(AbstractUser): """ 用户信息 """ nid = models.AutoField(primary_key=True) telephone = models.CharField(max_length=11, null=True, unique=True) ......
需要注意的是,UserInfo表里就不需要有auth_user里重复的字段了,比如说username以及password等,但是还是可以直接使用这些字段的,并且django会自动将password进行加密
2、这样写完之后,还需要在setting.py文件里配置:
AUTH_USER_MODEL = 'blog.UserInfo'
这样,django就知道从blog项目下的models去查找UserInfo这张表了
相关推荐:
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Authentifizierungsmoduls von Django (Benutzerauthentifizierung). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Mit der rasanten Entwicklung der sozialen Medien hat sich Xiaohongshu zu einer der beliebtesten sozialen Plattformen entwickelt. Benutzer können ein Xiaohongshu-Konto erstellen, um ihre persönliche Identität zu zeigen und mit anderen Benutzern zu kommunizieren und zu interagieren. Wenn Sie die Xiaohongshu-Nummer eines Benutzers finden müssen, können Sie diese einfachen Schritte befolgen. 1. Wie verwende ich das Xiaohongshu-Konto, um Benutzer zu finden? 1. Öffnen Sie die Xiaohongshu-App, klicken Sie auf die Schaltfläche „Entdecken“ in der unteren rechten Ecke und wählen Sie dann die Option „Notizen“. 2. Suchen Sie in der Notizenliste nach der Notiz, die von dem Benutzer gepostet wurde, den Sie suchen möchten. Klicken Sie hier, um die Seite mit den Notizdetails aufzurufen. 3. Klicken Sie auf der Seite mit den Notizdetails auf die Schaltfläche „Folgen“ unter dem Avatar des Benutzers, um zur persönlichen Homepage des Benutzers zu gelangen. 4. Klicken Sie in der oberen rechten Ecke der persönlichen Homepage des Benutzers auf die Schaltfläche mit den drei Punkten und wählen Sie „Persönliche Informationen“.

In Ubuntu-Systemen ist der Root-Benutzer normalerweise deaktiviert. Um den Root-Benutzer zu aktivieren, können Sie mit dem Befehl passwd ein Passwort festlegen und sich dann mit dem Befehl su- als Root anmelden. Der Root-Benutzer ist ein Benutzer mit uneingeschränkten Systemadministratorrechten. Er verfügt über Berechtigungen zum Zugriff auf und zum Ändern von Dateien, zur Benutzerverwaltung, zum Installieren und Entfernen von Software sowie zum Ändern der Systemkonfiguration. Es gibt offensichtliche Unterschiede zwischen dem Root-Benutzer und normalen Benutzern. Der Root-Benutzer verfügt über die höchste Autorität und umfassendere Kontrollrechte im System. Der Root-Benutzer kann wichtige Systembefehle ausführen und Systemdateien bearbeiten, was normale Benutzer nicht können. In dieser Anleitung werde ich den Ubuntu-Root-Benutzer untersuchen, wie man sich als Root anmeldet und wie er sich von einem normalen Benutzer unterscheidet. Beachten

Dem Ubuntu-System wurden viele Benutzer hinzugefügt. Ich möchte die Benutzer löschen, die nicht mehr verwendet werden. Werfen wir einen Blick auf das ausführliche Tutorial unten. 1. Öffnen Sie die Terminal-Befehlszeile und löschen Sie den angegebenen Benutzer mit dem Befehl „sudo“ (siehe Abbildung unten). 2. Achten Sie beim Löschen darauf, dass Sie sich im Administratorverzeichnis befinden Sie verfügen nicht über diese Berechtigung, wie in der folgenden Abbildung dargestellt. 3. Wie kann nach der Ausführung des Löschbefehls beurteilt werden, ob er tatsächlich gelöscht wurde? Als nächstes verwenden wir den Befehl cat, um die passwd-Datei zu öffnen, wie in der Abbildung unten gezeigt. 4. Wir sehen, dass sich die gelöschten Benutzerinformationen nicht mehr in der passwd-Datei befinden, was beweist, dass der Benutzer gelöscht wurde, wie in der folgenden Abbildung gezeigt 5. Dann geben wir die Home-Datei ein

sudo (Superuser-Ausführung) ist ein Schlüsselbefehl in Linux- und Unix-Systemen, der es normalen Benutzern ermöglicht, bestimmte Befehle mit Root-Rechten auszuführen. Die Funktion von sudo spiegelt sich hauptsächlich in den folgenden Aspekten wider: Bereitstellung von Berechtigungskontrolle: sudo erreicht eine strikte Kontrolle über Systemressourcen und sensible Vorgänge, indem es Benutzern erlaubt, vorübergehend Superuser-Berechtigungen zu erhalten. Normale Benutzer können über sudo bei Bedarf nur vorübergehende Berechtigungen erhalten und müssen sich nicht ständig als Superuser anmelden. Verbesserte Sicherheit: Durch die Verwendung von sudo können Sie die Verwendung des Root-Kontos bei Routinevorgängen vermeiden. Die Verwendung des Root-Kontos für alle Vorgänge kann zu unerwarteten Systemschäden führen, da für jeden fehlerhaften oder nachlässigen Vorgang die vollen Berechtigungen gewährt werden. Und

Django und Flask sind beide führend bei Python-Web-Frameworks und haben beide ihre eigenen Vorteile und anwendbaren Szenarien. In diesem Artikel wird eine vergleichende Analyse dieser beiden Frameworks durchgeführt und spezifische Codebeispiele bereitgestellt. Entwicklungseinführung Django ist ein Web-Framework mit vollem Funktionsumfang, dessen Hauptzweck darin besteht, schnell komplexe Webanwendungen zu entwickeln. Django bietet viele integrierte Funktionen wie ORM (Object Relational Mapping), Formulare, Authentifizierung, Verwaltungs-Backend usw. Diese Funktionen ermöglichen es Django, große Mengen zu verarbeiten

Django ist ein vollständiges Entwicklungsframework, das alle Aspekte des Webentwicklungslebenszyklus abdeckt. Derzeit ist dieses Framework eines der beliebtesten Web-Frameworks weltweit. Wenn Sie vorhaben, mit Django Ihre eigenen Webanwendungen zu erstellen, müssen Sie die Vor- und Nachteile des Django-Frameworks verstehen. Hier finden Sie alles, was Sie wissen müssen, einschließlich spezifischer Codebeispiele. Vorteile von Django: 1. Schnelle Entwicklung – Djang kann Webanwendungen schnell entwickeln. Es bietet eine umfangreiche Bibliothek und interne

Analyse des Speichermechanismus für Benutzerkennwörter im Linux-System Im Linux-System ist die Speicherung des Benutzerkennworts einer der sehr wichtigen Sicherheitsmechanismen. In diesem Artikel wird der Speichermechanismus von Benutzerkennwörtern in Linux-Systemen analysiert, einschließlich der verschlüsselten Speicherung von Kennwörtern, des Kennwortüberprüfungsprozesses und der sicheren Verwaltung von Benutzerkennwörtern. Gleichzeitig wird anhand konkreter Codebeispiele der tatsächliche Ablauf der Passwortspeicherung demonstriert. 1. Verschlüsselte Speicherung von Passwörtern In Linux-Systemen werden Benutzerpasswörter nicht im Klartext im System gespeichert, sondern verschlüsselt und gespeichert. L

So aktualisieren Sie die Django-Version: Schritte und Überlegungen, spezifische Codebeispiele erforderlich. Einführung: Django ist ein leistungsstarkes Python-Web-Framework, das kontinuierlich aktualisiert und aktualisiert wird, um eine bessere Leistung und mehr Funktionen bereitzustellen. Für Entwickler, die ältere Versionen von Django verwenden, kann die Aktualisierung von Django jedoch einige Herausforderungen mit sich bringen. In diesem Artikel werden die Schritte und Vorsichtsmaßnahmen zum Aktualisieren der Django-Version vorgestellt und spezifische Codebeispiele bereitgestellt. 1. Sichern Sie die Projektdateien, bevor Sie Djan aktualisieren
