Benutzer mit der Befehlszeile verwalten

  • 15. Januar 2022

Das Erstellen und Ändern von Benutzerprofilen kann einfach und intuitiv über die grafische Benutzeroberfläche im Django-Admin erledigt werden. Manchmal gibt es Situationen, in denen man aber Benutzer über die Befehlszeile verwalten will oder muss. Der Klassiker ist hier das Erstellen eines Superusers nach der Installation eines neuen Projektes oder das Ändern eines Benutzerpassworts.

Die bei der Grundinstallation mitinstallierte App django.contrib.auth bietet eine komfortable grafische Benutzeroberfläche im Django-Admin, mit der die Arbeit an Benutzerprofilen intuitiv erledigt werden kann.

So präsentiert sich die Benutzerverwaltung im Django-Admin, die von Haus aus installiert ist.

Manchmal gibt es Situationen, in denen man Benutzer über die Befehlszeile verwalten möchte. Zum Beispiel das Erstellen eines Superusers nach der Grundinstallation. Ohne den man sich nicht an der Benutzeroberfläche einloggen kann. Das Ändern eines Benutzerpasswortes ist oft auch schneller über die Befehlszeile erledigt.

Im folgenden Post habe ich ein paar nützliche Befehle zusammengestellt.

Einen Superuser erstellen

Nach dem Erstellen eines neuen Projektes muss man mit folgendem Befehl einen Superuser erstellen. Ein Superuser ist ein Benutzer, der alle Berechtigungen besitzt.

python manage.py createsuperuser

Folge den Anweisungen in der Befehlszeile um einen Namen für den Superuser und das Passwort einzugeben.

Benutzerpasswort ändern

Ändern des Passworts mit manage.py

Das Passworts eines Benutzers ändert man am einfachsten mit dem Hilfsmodul manage.py. Dafür braucht man folgenden Befehl:

python manage.py changepassword benutzername

Hinweis: Der Benutzername ist Case-sensitiv, d.H., die Gross- und Kleinschreibung muss beachtet werden.

Nach Eingabe des Befehls muss das neue Passwort zweimal eingegeben werden. Es ist nicht möglich, ein bereits vergebenes Passwort herauszufinden, da die Passwörter verschlüsselt gespeichert werden.

Ändern des Passworts über die Python-Shell

Ein anderer Weg, das Passwort eines Benutzers zu ändern, führt über die Python-Shell.

Die Django-Python-Shell eines Projekts startet man mit folgendem Befehl:

python manage.py shell

Mit diesem Befehl wird der Python Interpreter gestartet und gleichzeitig die Umgebungsvariable DJANGO_SETTINGS_MODULE gesetzt. Das gibt Django den Python-Pfad zur settings.py Datei des Projektes.

Danach importiert man das User-Modell von django.contrib.auth.models:

>>> from django.contrib.auth.models import User

Jetzt kann man das Passwort mit der Hilfsfunktion set_password() auf folgende Art und Weise ändern:

>>> u = User.objects.get(username='Max')  # Hohle den Benutzer Max aus der Datenbank
>>> u.set_password('neues passwort')  # Vergebe das neue Passwort
>>> u.save()  # Speichere das neue Passwort in der Datenbank

Alle Benutzer anzeigen

Ausser changepassword und createsuperuser finden alle Arbeiten an den Benutzern in der Django-Shell statt. Hier kann auch eine Liste aller Benutzer angezeigt werden.

Starte die Django-Shell:

python manage.py shell

Importiere das User-Modell:

>>> from django.contrib.auth.models import User

Frage alle Benutzer in der Datenbank ab:

>>> users = User.objects.all()  # Hohle alle Benutzer aus der Datenbank
>>> users
<QuerySet [<User: Didier>, <User: John>, <User: Max>]>  # Ausgabe

Erstellen von Benutzern

Das Erstellen eines Benutzers findet ebenfalls in der Django-Shell statt.

Einstieg in die Shell:

python manage.py shell

Importieren des User-Modells von django.contrib.auth.models:

from django.contrib.auth.models import User

Danach kann ein neuer Benutzer angelegt werden:

user = User.objects.create_user('Ernst', 'ernst@ernst.org', 'benutzer_passwort')

Ändern von Benutzer-Attributen

Sollen die Attribute eines Benutzers geändert werden, z.B. Vorname, Name oder E-Mail-Adresse, findet das ebenfalls in der Shell statt. Die Grundattribute eines Benutzers sind:

  • username (Benutzername)
  • password (Passwort)
  • email (E-Mailadresse des Benutzers)
  • first_name (Vorname des Benutzers)
  • last_name (Nachname des Benutzers)

Man starte die Python-Shell:

python manage.py shell

Lade das User-Modell:

>>> from django.contrib.auth.models import User

Man suche den gewünschten User in der Datenbank:

>>> max = User.objects.get(username="Max")

Und zeige, das gewünschte Attribut, hier der Vorname des Benutzers, folgendermassen an:

>>> max.first_name
'Max'

Andern des Vornames zu Maximilian:

>>> max.first_name = "Maximilian"
>>> max.first_name
'Maximilian'

 

Das könnte dich auch interessieren

Statische Dateien mit Django verwalten

  • 12. Januar 2022

Statische Dateien wie CSS Stylesheets, JavaScript Code, Logos und Bilder sind ein wichtiger Bestandteil jeder Webseite. Django-Projekte sind da keine Ausnahme. Das Web-Framework bietet dem Entwickler flexible Möglichkeiten, statische Dateien in kleinen und grossen Projekten zu verwalten. In dieser Anleitung zeige ich auf, wie die Grundkonfiguration aussieht, was jeweils dahintersteckt und was beachtet werden muss.

Erstellen eines Django-Projektes

  • 30. Januar 2021

Ein Django-Projekt zu erstellen ist nicht schwer und schnell erledigt. Dennoch besteht die Installation aus mehreren Schritten. In diesem Blog-Post habe ich diese festgehalten. Auf diese Weise kann ich ein neues Projekt schnell aufsetzen und mit der Arbeit an der eigentlichen Idee beginnen.

Django-Superkraft: Eine CRUD-Web-App in 60 Minuten

Teil 1: Installation und Konfiguration

  • 17. Juli 2020

Eine der Stärken von Django ist, dass man schnell zu präsentierbaren Ergebnissen gelangt. Ein Beispiel dafür ist die Arbeit mit einer Datenbank, was für eine moderne Web-App zentral ist. Bei vielen Systemen besteht die Herausforderung darin, zuerst die aufwendige Konfiguration des Datenbanksystems und der API richtig hinzubekommen, bevor überhaupt mit der Programmierung der Web-App begonnen werden kann. Nicht so in Django. Die Anbindung an eine Datenbank ist ein Kinderspiel. Dies zeige ich am Beispiel dieses Tutorials, in dem wir eine voll funktionsfähige Web-App mit Datenbankanbindung erstellen.

Django-Superkraft: Eine CRUD-Web-App in 60 Minuten

Teil 2: Erstellen des Front-End

  • 19. September 2020

Eine der Stärken von Django ist, dass man schnell zu präsentierbaren Ergebnissen gelangt. In diesem zweiteiligen Tutorial zeige ich auf, wie man in knapp 60 Minuten eine CRUD-App erstellt. Im ersten Teil haben wir das Projekt installiert und konfiguriert, die App initialisiert, die Datenbankmodelle hinzugefügt und mit dem Django-Admin verknüpft. In diesem Teil des Tutorials werden wir ein Front-End hinzufügen, das alle vier CRUD-Operationen unterstützt, plus eine Listenansicht der Datenbankeinträge.