Heim >Backend-Entwicklung >Python-Tutorial >Django-Benutzerauthentifizierungssystem (1) Benutzerobjekt
Benutzerobjekt
Benutzerobjekt ist der Kern des Authentifizierungssystems. Benutzerobjekte werden typischerweise verwendet, um Benutzer einer Website darzustellen und beispielsweise Zugriffskontrolle, registrierte Benutzer, Zuordnung von Erstellern und Inhalten usw. zu unterstützen. Im Django-Authentifizierungsframework gibt es nur eine Benutzerklasse. Beispielsweise sind Superuser („Superusers“) oder („Staff“)-Benutzer einfach dieselben Benutzerobjekte mit unterschiedlichen Attributen.
Standardfelder Felder
Benutzername
Benutzername, Pflichtfeld. 30 Zeichen oder weniger, kann _, @, +, und - Zeichen enthalten.
Vorname
Optional. 30 Zeichen oder weniger.
Nachname
optional. 30 Zeichen oder weniger.
E-Mail
E-Mail, optional. E-Mail-Adresse.
Passwort
Passwort, erforderlich. Django speichert Passwörter nicht im Klartext, sondern speichert Hashes.
Gruppen
Benutzergruppen. Viele-zu-viele-Beziehung zur Gruppe
user_permissions
Benutzerberechtigungen. Viele-zu-viele-Beziehung zur Berechtigung
groups = models.ManyToManyField(Group, verbose_name=_('groups'),
blank=True, help_text=_('Die Gruppen, denen dieser Benutzer angehört. Ein Benutzer erhält '
'seine Gruppen'),
'alle Berechtigungen, die jeder seiner '
'Gruppen' gewährt werden.),
related_name="user_set", related_ query_name="user ")
user_permissions = models.ManyToManyField( Permission,
verbose_name=_('Benutzerberechtigungen'), blank=True,
help_text=_('Spezifische Berechtigungen für diesen Benutzer.'),
related_name="user_set", related_query_name="user" )
is_staff
is_active
is_superuser
def has_perm(self, perm, obj=None):
"""
Gibt True zurück, wenn der Benutzer über die angegebene Berechtigung verfügt. Diese Methode
fragt alle verfügbaren Authentifizierungs-Backends ab, gibt aber zurück Falls vorhanden, gibt das Backend sofort „True“ zurück. Daher wird davon ausgegangen, dass ein Benutzer, der die Berechtigung eines einzelnen Authentifizierungs-Backends hat, generell über die Berechtigung für dieses bestimmte Objekt verfügt.
"""
# Aktive Superuser haben alle Berechtigungen. > Return _user_has_perm(self, perm, obj)
last_login
Die letzte Anmeldezeit ist ein Datetime-Objekt , und der Standardwert ist die Zeit zu diesem Zeitpunkt.
user.last_login = timezone.now()
Zeitpunkt der Benutzererstellung
Methoden
Ob Sie ein anonymer Benutzer sind.
is_authenticated()
Gibt an, ob der Benutzer die Überprüfung bestanden und sich angemeldet hat. get_full_name()Vorname plus Nachname mit einem Leerzeichen dazwischen zurückgeben.
get_short_name()
Vorname zurückgeben.
set_password(raw_password)
Passwort festlegen.
check_password(raw_password)
Passwort überprüfen.
get_group_permissions(obj=None)
Gibt eine Sammlung von Benutzergruppenberechtigungen zurück.
get_all_permissions(obj=None)
Gibt den Satz aller Berechtigungen des Benutzers zurück.
has_perm(perm, obj=None)
Ob der Benutzer eine bestimmte Berechtigung hat. Das Format von perm ist „
has_perms(perm_list, obj=None)
Gibt an, ob der Benutzer über jede Berechtigung in der Berechtigungsliste verfügt.
Erstellen eines Benutzers
>>> from django.contrib.auth.models import User
>>> user = User.objects.create_user('john', 'lennon@thebeatles.com', 'johnpassword ')
# Zu diesem Zeitpunkt ist der Benutzer ein Benutzerobjekt, das bereits in der Datenbank gespeichert wurde
# Sie können seine Attribute weiter ändern
#, wenn Sie andere Felder ändern möchten.
>>> user.last_name = 'Lennon'
>>> user.save()
Natürlich können Sie auch Benutzer im Admin hinzufügen Schnittstelle.
Superuser erstellen
$ python manage.py createsuperuser --username=joe --email=joe@example.com
Passwort ändern
Verwenden Sie die integrierte Methode set_password().
>>> from django.contrib.auth.models import User
>>> u = User.objects.get(username='john')
> >> u.set_password('neues Passwort')
>>> u.save()
Benutzer authentifizieren
authenticate()
Überprüfen Sie, ob der angegebene Benutzername und das Passwort ein gültiger Benutzer sind. Wenn es gültig ist, wird ein Benutzerobjekt zurückgegeben. Wenn es ungültig ist, wird None zurückgegeben.
aus django.contrib.auth importieren Authenticate
user = Authenticate(Benutzername='John', Passwort='Geheimnis')
wenn der Benutzer nicht None ist:
# das Passwort, für das überprüft wurde der Benutzer
if user.is_active:
print("Benutzer ist gültig, aktiv und authentifiziert")
else:
print("Das Passwort ist gültig, aber das Konto wurde deaktiviert!")
sonst:
# das Authentifizierungssystem konnte den Benutzernamen und das Passwort nicht überprüfen
print("Der Benutzername und das Passwort waren falsch.")
Oben ist der Django-Benutzer Authentifizierungssystem (1) Der Inhalt des Benutzerobjekts. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!