Arbeiten mit strukturierten Daten mit MongoDB in Django – Teil 1

Ein großes Problem mit Django ist, dass es MongoDB in seinen Standard-Datenbank-Engines nicht unterstützt. Es gibt Zeiten, in denen wir gerne mit MongoDB und dem Django-Framework zusammen arbeiten und gleichzeitig einen modellbasierten (schemabasierten) Datenbankansatz verwenden würden. Um diese Art von Situation zu unterstützen, gibt es nur sehr wenige eingebaute Pakete und mehr als oft müssen wir sie manuell codieren. Ja, PyMongo ist vorhanden, aber es unterstützt keine Modellerstellung oder schemabasierte Datenstruktur für unsere Daten und es ist schwierig, Daten mit all den Einschränkungen zu validieren. Eine Problemumgehung? Ja, PyMODM.

PyMODM – Python-Paket zum Strukturieren von Daten in MongoDB

PyMODM ist als Wrapper auf PyMongo aufgebaut, dem offiziellen MongoDB-Treiber für Python. Wir können dies verwenden, um Modelle, Schemata und alle anderen Strukturen und Eigenschaften der in MongoDB aufgenommenen Daten zu erstellen.

Voraussetzungen –

  • Grundlegende Python-Kenntnisse

  • Grundkenntnisse in objektorientierter Programmierung

  • Grundlegende MongoDB-Kenntnisse (nicht erforderlich)
    Der in diesem Blog gezeigte Beispielcode wird von Python 3.5 auf Linux-basierten Maschinen sein. Änderungen für andere Versionen betreffen nur die grundlegende Python- und Befehlszeilensyntax. Wir werden die folgenden Themen in diesem Artikel behandeln –

  • Installation

  • Verbindung zu MongoDB herstellen

  • Modelle definieren

Lass uns anfangen!

Installation

pymodm kann wie jedes andere Python-Paket mit pip (oder conda, wenn Sie Anaconda verwenden) als installiert werden

pip installiere pymodm

Danach benötigen Sie natürlich eine funktionierende MongoDB-Instanz. Sie können Ihren eigenen Server lokal herunterladen und einrichten oder eine beliebige in der Cloud/online gehostete Mongo-Datenbank verwenden. Sie können es kostenlos von www.mongodb.com herunterladen

Verbindung zu MongoDB herstellen

Jetzt, wo wir haben pymodm installiert und MongoDB bereits eingerichtet ist, möchten Sie den MongoDB-Dienst möglicherweise mit dem Befehl starten, falls er noch nicht gestartet wurde Mongott.

Um nun eine Verbindung zu Ihrer lokalen MongoDB-Instanz herzustellen, verwenden wir die verbinden() Die Funktion von pymodm.

Schauen wir uns also an, was wir hier tatsächlich gemacht haben. Zuerst importierten wir die verbinden() Methode aus dem Anschlussmodul. Dann haben wir eine MongoDB-Verbindung mit einer MongoDB-Verbindungszeichenfolge hergestellt. Diese Zeichenfolge beginnt immer mit _ mongodb:// _ und dann die URI des Mongodb-Servers. Sie müssen immer den Datenbanknamen in angeben verbinden()“TestApp” oben, um zu sagen pymodm welche Datenbank verwendet werden soll. Dies ist die Datenbank, in der alle Ihre Daten in Ihrer gespeichert werden pymodm Anwendung standardmäßig.

Modelle definieren

Lassen Sie uns zunächst darüber sprechen, was ein Modell ist. Ein Modell ist im Grunde ein Schema, das alle Eigenschaften, Attribute, das Design usw. unserer Sammlung definiert, um unsere Daten auf bequeme objektorientierte Weise darzustellen. (Eine Sammlung kann in Bezug auf SQL als Tabelle betrachtet werden, muss aber nicht).

Jetzt, wo wir bereit sind, werden wir beginnen, unsere Modellklassen zu definieren. MongoModel ist die Basisklasse für alle Top-Level-Modelle (Top-Level-Schemadesign einer Sammlung).

Wir haben 2 Arten von Modellen in pymodm.

Basismodell

Dies ist ein grundlegendes Modell, Vererbung MongoModel Klasse, in der wir alle unsere Eigenschaften (Spalten) und ihre Typen und Attribute definieren. Zum Beispiel –

Unser Modell, Benutzer wird drei Eigenschaften (oder Spalten) haben – Vorname Nachname und Email. Wir erwähnen die Art von Vorname durch Felder.CharField() Erwähnen, dass es sich um einen Zeichenfolgenwert und einen optionalen Parameter handelt maximale Länge als 50. Das Feld Email wird vom Typ E-Mail sein. Die Haupttypen von Feldern, die Sie haben können, sind –

  • CharField()
  • E-MailFeld()
  • BooleschesFeld()
  • DateTimeField()
  • ObjectIdField()
  • GanzzahlFeld()
  • Listenfeld()
  • alle anderen finden Sie hier.

Modelle, die auf andere Modelle verweisen

Manchmal müssen unsere Modelle auf andere Modelle verweisen. Es gibt zwei Möglichkeiten, dies zu tun.

  • Verweisen auf ein anderes Dokument einer anderen Sammlung mit dem Typ ReferenceField().
  • Referenzieren von Dokumenten einer anderen Sammlung mit dem Typ EmbeddedDocumentField().

Der Unterschied zwischen a Referenzfeld() und EmbeddedDocumentField() ist, dass das Referenzfeld wie ein Fremdschlüssel zu einem anderen Dokument in einer anderen Sammlung ist, in der beide Dokumente eine separate Entität sind. Das eingebettete Dokument sagt uns, dass das eingebettete Dokument ein Teil dieses Dokuments ist, das nicht für sich allein leben kann und kann.
Da sich die Vererbungseigenschaften unterscheiden (ist ein und hat ein) diese unterscheiden sich in gleicher Weise. EIN Student ist ein Benutzersowie ein Angestellter ist ein Benutzer aber Angestellter hat ein Adresse.

Sie können entweder eine Single haben EmbeddedDocumentField des Typs Adresse oder ein EmbeddedDocumentListField ein Array von Adressen haben.

Nachdem wir einige Modelle und Schemata entworfen haben, können wir jetzt Daten erstellen und abfragen. Der nächste Artikel basiert auf CRUD-Operationen und QuerySet.

Kommentieren Sie und lassen Sie mich Ihre Ansichten wissen.!

Similar Posts

Leave a Reply

Your email address will not be published.