Tabellen mit SQLAlchemy erstellen
Bisher hast du das Table-Objekt genutzt, um eine Tabelle aus einer bestehenden Datenbank zu reflektieren. Aber was, wenn du eine neue Tabelle anlegen willst? Du würdest weiterhin das Table-Objekt verwenden; allerdings ersetzt du die Parameter autoload und autoload_with durch Column-Objekte.
Das Column-Objekt erhält einen Namen, einen SQLAlchemy-Typ mit optionalem Format sowie optionale Schlüsselwortargumente für verschiedene Constraints.
Erinnere dich: Im Video hat Jason 255 als maximale Länge für einen String übergeben, indem er Column('name', String(255)) genutzt hat. Ein Blick in die Folien aus dem Video kann helfen.
Nachdem die Tabelle definiert ist, kannst du sie mithilfe der Methode .create_all() auf den Metadaten und mit dem Engine-Objekt als einzigem Parameter in der Datenbank erstellen. Los geht’s!
Diese Übung ist Teil des Kurses
Einführung in Datenbanken mit Python
Anleitung zur Übung
- Importiere
Table,Column,String,Integer,Float,Booleanaussqlalchemy. - Erstelle eine neue Tabelle namens
datamit den Spalten'name'(String(255)),'count'(Integer()),'amount'(Float()), und'valid'(Boolean()). Das zweite Argument vonTable()mussmetadatasein; es wurde bereits initialisiert. - Erstelle die Tabelle in der Datenbank, indem du
engineanmetadata.create_all()übergibst.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Import Table, Column, String, Integer, Float, Boolean from sqlalchemy
from sqlalchemy import ____, ____, ____, ____, ____, ____
# Define a new table with a name, count, amount, and valid column: data
data = Table('data', ____,
Column(____, ____),
Column('count', Integer()),
Column(____, ____),
Column(____, ____)
)
# Use the metadata to create the table
metadata.create_all(____)
# Print table details
print(repr(data))