Data Model (DM) Referenz#
Dieser Abschnitt beschreibt die Data Model (DM) Schicht in RESTAlchemy.
Die DM-Schicht ist verantwortlich für:
- Definition von Domänenmodellen als Python-Klassen.
- Beschreibung von Feldern, Typen und Validierungsregeln.
- Abbildung von Beziehungen zwischen Modellen.
- Bereitstellung von Mixins für häufige Muster (UUID, Timestamps, Name/Beschreibung usw.).
Die DM-Schicht ist in folgenden Modulen implementiert:
restalchemy.dm.modelsrestalchemy.dm.propertiesrestalchemy.dm.relationshipsrestalchemy.dm.typesrestalchemy.dm.filtersrestalchemy.dm.types_dynamic(erweiterte Typen)restalchemy.dm.types_network(netzwerkbezogene Typen)
Diese Referenz konzentriert sich auf die ersten fünf Module, die im Alltag am häufigsten verwendet werden.
Kurzer Überblick#
Ein typisches DM-Modell sieht so aus:
from restalchemy.dm import models, properties, types
class Foo(models.ModelWithUUID):
# Integer field, required
value = properties.property(types.Integer(), required=True)
# Optional string with default value
description = properties.property(types.String(max_length=255), default="")
Wichtige Ideen:
- Sie erben von
Modeloder einer Hilfsklasse wieModelWithUUID. - Sie verwenden
properties.property(), um Felder zu definieren. - Sie verwenden
types.*Klassen, um Typ und Constraints eines Feldes zu beschreiben.
Beziehungen zwischen Modellen werden mit relationships.relationship() definiert.
Filter (restalchemy.dm.filters) beschreiben Abfragebedingungen in Storage- und API-Schichten.
Dateien in diesem Abschnitt#
- Modelle
Model,ModelWithID,ModelWithUUID,ModelWithTimestampund weitere Mixins.- Properties
- Property-System:
Property,IDProperty,PropertyCollection,PropertyManager, Fabriken. - Relationships
relationship(),required_relationship(),readonly_relationship(),Relationship,PrefetchRelationship.- Types
- Skalare, Datums-/Zeit-, Collection- und strukturierte Typen für Properties.
- Filters
- Filter-Klassen (
EQ,GT,Inusw.) und logische Ausdrücke (AND,OR).
Sie finden die DM-Referenz in jeder Sprache im entsprechenden Abschnitt reference/dm/.