Wenn Sie mit der Webentwicklung beginnen und auf das Framework Django stoßen, haben Sie wahrscheinlich schon einmal das Wort "ORM" gehört. Django ORM ist eines der wichtigsten Werkzeuge, das Ihnen hilft, Daten in Django einfach zu verwalten. In diesem Beitrag werde ich das Konzept von Django ORM und seine Verwendung im Detail erklären, sodass auch Anfänger es verstehen können.
1. Was ist ORM?
ORM steht für Object-Relational Mapping. Einfach ausgedrückt, ist es ein Werkzeug, das Ihnen dabei hilft, komplexe Aufgaben im Zusammenhang mit Datenbanken einfach mit Python-Code auszuführen.

Im Allgemeinen müssen Webanwendungen Daten in einer Datenbank speichern, abrufen, ändern und löschen. Die Datenbank wird normalerweise mit einer Sprache namens SQL manipuliert. SQL ist eine äußerst nützliche Sprache, aber für Entwickler kann es mühsam sein, jedes Mal direkt SQL-Abfragen zu schreiben. Besonders wenn die Daten komplexer werden und es viele Beziehungen gibt, wird das Schreiben des Codes immer schwieriger.
ORM ermöglicht es Ihnen, anstelle von direkten SQL-Abfragen die Datenbank mit Programmiersprachen wie Python zu verwalten. Mit dem ORM von Django können Sie die Datenbank mit Python-Code manipulieren, ohne SQL-Abfragen zu wissen. Das ist einer der größten Vorteile von Django ORM.
2. Hauptkonzepte von Django ORM
In Django werden die Tabellen der Datenbank als Modelle (model) dargestellt. Modelle sind Klassen, die die Struktur der Datenbank und die Art und Weise, wie Daten verwaltet werden, definieren. Django ORM generiert automatisch SQL-Abfragen über diese Modelle und interagiert mit der Datenbank.
2.1 Modell definieren
Modelle werden in Django als Python-Klassen definiert. Lassen Sie uns ein einfaches Modell erstellen, um Blogbeiträge zu speichern.
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
publish_date = models.DateTimeField(auto_now_add=True)
Im obigen Code haben wir ein Modell mit dem Namen Post
definiert. Dieses Modell hat die Felder title
, content
und publish_date
. Jedes dieser Felder repräsentiert eine Spalte in der Datenbank, und dieses Modell repräsentiert die Tabelle in der Datenbank.
title
: Ein Stringfeld zur Speicherung des Titels des Beitrags, maximal 100 Zeichen lang.content
: Ein Feld zur Speicherung des Inhalts des Beitrags, ein Textfeld ohne Längenbeschränkung.publish_date
: Ein Datumsfeld, das automatisch das Veröffentlichungsdatum des Beitrags erfasst.
Auf diese Weise können Sie die Struktur der Datenbanktabelle über Python-Klassen definieren. Django ORM verwendet dieses Modell, um die Tabelle zu erstellen und die Daten zu verwalten.
2.2 Datenbankoperationen
Nachdem das Modell definiert ist, können wir nun Datenbankoperationen mit diesem Modell durchführen. Die vier grundlegenden Operationen, die oft als CRUD bezeichnet werden, sind Erstellen (Create), Lesen (Read), Aktualisieren (Update) und Löschen (Delete). Django ORM hilft, diese CRUD-Operationen einfach durchzuführen.
2.2.1 Daten erstellen (Create)
Wenn Sie einen Beitrag in der Datenbank speichern möchten, können Sie dies einfach wie folgt tun.
new_post = Post.objects.create(title='Erster Beitrag', content='Hier den Inhalt des Beitrags eingeben.')
Durch die Verwendung der Post.objects.create()
-Methode wird ein neuer Datensatz in der Datenbank hinzugefügt.
2.2.2 Daten abrufen (Read)
Wenn Sie Daten aus der Datenbank abrufen möchten, können Sie folgende Methoden verwenden.
all_posts = Post.objects.all() # Alle Beiträge abrufen
specific_post = Post.objects.get(id=1) # Beitrag mit spezifischer ID abrufen
Post.objects.all()
: Ruft alle Beiträge aus der Datenbank ab.Post.objects.get(id=1)
: Ruft einen Datensatz ab, der ein bestimmtes Kriterium erfüllt. In diesem Fall den Beitrag mit derid
1.
2.2.3 Daten aktualisieren (Update)
Wenn Sie Daten ändern möchten, müssen Sie die entsprechenden Daten zuerst abrufen, sie ändern und dann speichern.
specific_post = Post.objects.get(id=1)
specific_post.title = 'Geänderter Titel'
specific_post.save() # Änderungen in der Datenbank speichern
Durch den Aufruf der save()
-Methode werden die Änderungen in der Datenbank reflektiert.
2.2.4 Daten löschen (Delete)
Wenn Sie Daten löschen möchten, können Sie dies wie folgt tun.
specific_post = Post.objects.get(id=1)
specific_post.delete() # Den entsprechenden Beitrag aus der Datenbank löschen
Durch den Aufruf der delete()
-Methode wird der entsprechende Datensatz aus der Datenbank gelöscht.
3. Vorteile von Django ORM
- SQL-Kenntnisse sind nicht erforderlich: Dank ORM können Entwickler Daten mit Python-Code bearbeiten, ohne komplizierte SQL-Abfragen zu kennen. Dies ist insbesondere für Anfänger mit begrenztem Wissen über Datenbanken von großem Vorteil.
- Datenbankunabhängigkeit: Django ORM ist kompatibel mit verschiedenen Datenbank-Engines wie MySQL, PostgreSQL und SQLite. Daher, wenn Sie Ihre Anwendung entwickelt haben und die Datenbank ändern müssen, können Sie dies einfach tun, indem Sie nur die Datenbankkonfiguration ändern, ohne den Code anpassen zu müssen.
- Produktivitätssteigerung: Da die Daten mit Python-Code bearbeitet werden können, wird die Entwicklungszeit verkürzt, und die Produktivität steigt.
4. Wann sollte ORM verwendet werden?
ORM ist praktisch beim Interagieren mit Datenbanken, aber nicht in jeder Situation geeignet. Wenn eine komplexe SQL-Abfrage erforderlich ist, kann es schwieriger sein, dies mit ORM zu implementieren. In solchen Fällen könnte es besser sein, SQL direkt zu schreiben oder die in Django bereitgestellte Raw SQL-Funktion zu verwenden. Aber für allgemeine CRUD-Operationen oder den Umgang mit Beziehungsmodellen ist ORM weitaus praktischer und intuitiver, weshalb es empfohlen wird.
Fazit
Django ORM ist ein mächtiges Werkzeug, das die Interaktion mit der Datenbank einfach macht. Es ermöglicht Anfängern, Daten zu verwalten, ohne SQL direkt schreiben zu müssen, indem sie Daten erstellen, abrufen, ändern und löschen können, und das alles mit Python-Code. Wenn Sie Webanwendungen mit Django entwickeln möchten, ist es wichtig, das Konzept des ORM gut zu verstehen und anzuwenden. Dadurch können Sie die Produktivität erhöhen und effizienteren Code schreiben.
Jetzt sollte Ihnen etwas klarer sein, was es bedeutet, Modelle in Django zu definieren und ORM zu nutzen. Wenn Sie in Zukunft direkt üben und CRUD-Operationen durchführen, werden Sie die Vorteile von ORM noch intensiver erleben.
Add a New Comment