Erstellen Ihres Ersten Modells
In SQLAlchemy besteht das Erstellen eines Modells darin, eine Python-Klasse zu definieren, die einer Tabelle in der Datenbank entspricht. Jede Instanz dieser Klasse repräsentiert eine Zeile in der Tabelle. Im Folgenden wird ein einfaches Beispiel gezeigt, in dem ein Comment
-Modell zum Speichern von Benutzerkommentaren erstellt wird.
from sqlalchemy import Column, Integer, String, Text, DateTime
from sqlalchemy.ext.declarative import declarative_base
from datetime import datetime
Base = declarative_base()
class Comment(Base):
__tablename__ = "comments" # the name of the table in the database
id = Column(Integer, primary_key=True) # primary key column, uniquely identifies each comment
content = Column(Text, nullable=False) # content of the comment, cannot be null
created_at = Column(DateTime, default=datetime.utcnow) # timestamp when the comment is created, defaults to current time
# Create all tables defined by models
Base.metadata.create_all(engine)
Dies definiert eine Python-Klasse namens Comment
, die eine Tabelle in der Datenbank repräsentiert. Die Klasse erbt von Base
, wodurch sie einer Tabelle in der Datenbank zugeordnet werden kann.
__tablename__ = "comments"
Die Klasse Comment
, die von Base
erbt, definiert eine Tabelle in der Datenbank. Dadurch kann sie mittels Object-Relational Mapping (ORM) einer Datenbanktabelle zugeordnet werden.
id = Column(Integer, primary_key=True)
Das Feld id
dient als Primärschlüssel und stellt sicher, dass jeder Kommentar eine eindeutige Kennung besitzt. SQLAlchemy erhöht den Wert für jeden neuen Datensatz automatisch.
content = Column(Text, nullable=False)
Das Feld id
enthält den Kommentartext und darf nicht leer sein. Es stellt sicher, dass jeder Kommentar einen Inhalt hat.
created_at = Column(DateTime, default=datetime.utcnow)
Das Feld created_at
speichert automatisch den Zeitstempel, zu dem der Kommentar erstellt wurde. Wenn kein Wert angegeben wird, wird die aktuelle Zeit mit datetime.utcnow
gesetzt, sodass der Zeitstempel in UTC aufgezeichnet wird.
Base.metadata.create_all(engine)
Diese Zeile erstellt alle Tabellen in der Datenbank, die in den Modellen definiert wurden. Sie verwendet die Informationen aus den Metadaten und erstellt die erforderlichen Tabellen über die durch den Engine bereitgestellte Verbindung. Dies ist nützlich, um Tabellen automatisch zu erstellen, falls sie noch nicht existieren.
Swipe to start coding
In dieser Aufgabe erhalten Sie einen Ausgangspunkt zur Definition eines SQLAlchemy-Modells. Ihre Aufgabe ist es, das Modell zu vervollständigen, indem Sie die fehlenden Teile ausfüllen.
- Das Attribut
__tablename__
gibt den Tabellennamen in der Datenbank an. Ersetzen Sie den Platzhalter durch den korrekten Tabellennamen für dasUser
-Modell. - Die Spalte
id
sollte als Primärschlüssel gekennzeichnet werden. Fügen Sie das richtige Schlüsselwort-Argument hinzu, um dies anzugeben. - Die Spalte
username
sollte eindeutig sein, das heißt, keine zwei Benutzer dürfen denselben Benutzernamen haben. Ergänzen Sie das fehlende Schlüsselwort-Argument. - Die Spalte
is_active
sollte einen Standardwert vonTrue
haben. Fügen Sie das passende Argument hinzu, um diesen Standardwert festzulegen.
Lösung
Danke für Ihr Feedback!
single
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Can you explain what the `engine` variable is and how to set it up?
How do I add a new comment to the database using this model?
What is the purpose of `declarative_base()` in this example?
Awesome!
Completion rate improved to 4.76
Erstellen Ihres Ersten Modells
Swipe um das Menü anzuzeigen
In SQLAlchemy besteht das Erstellen eines Modells darin, eine Python-Klasse zu definieren, die einer Tabelle in der Datenbank entspricht. Jede Instanz dieser Klasse repräsentiert eine Zeile in der Tabelle. Im Folgenden wird ein einfaches Beispiel gezeigt, in dem ein Comment
-Modell zum Speichern von Benutzerkommentaren erstellt wird.
from sqlalchemy import Column, Integer, String, Text, DateTime
from sqlalchemy.ext.declarative import declarative_base
from datetime import datetime
Base = declarative_base()
class Comment(Base):
__tablename__ = "comments" # the name of the table in the database
id = Column(Integer, primary_key=True) # primary key column, uniquely identifies each comment
content = Column(Text, nullable=False) # content of the comment, cannot be null
created_at = Column(DateTime, default=datetime.utcnow) # timestamp when the comment is created, defaults to current time
# Create all tables defined by models
Base.metadata.create_all(engine)
Dies definiert eine Python-Klasse namens Comment
, die eine Tabelle in der Datenbank repräsentiert. Die Klasse erbt von Base
, wodurch sie einer Tabelle in der Datenbank zugeordnet werden kann.
__tablename__ = "comments"
Die Klasse Comment
, die von Base
erbt, definiert eine Tabelle in der Datenbank. Dadurch kann sie mittels Object-Relational Mapping (ORM) einer Datenbanktabelle zugeordnet werden.
id = Column(Integer, primary_key=True)
Das Feld id
dient als Primärschlüssel und stellt sicher, dass jeder Kommentar eine eindeutige Kennung besitzt. SQLAlchemy erhöht den Wert für jeden neuen Datensatz automatisch.
content = Column(Text, nullable=False)
Das Feld id
enthält den Kommentartext und darf nicht leer sein. Es stellt sicher, dass jeder Kommentar einen Inhalt hat.
created_at = Column(DateTime, default=datetime.utcnow)
Das Feld created_at
speichert automatisch den Zeitstempel, zu dem der Kommentar erstellt wurde. Wenn kein Wert angegeben wird, wird die aktuelle Zeit mit datetime.utcnow
gesetzt, sodass der Zeitstempel in UTC aufgezeichnet wird.
Base.metadata.create_all(engine)
Diese Zeile erstellt alle Tabellen in der Datenbank, die in den Modellen definiert wurden. Sie verwendet die Informationen aus den Metadaten und erstellt die erforderlichen Tabellen über die durch den Engine bereitgestellte Verbindung. Dies ist nützlich, um Tabellen automatisch zu erstellen, falls sie noch nicht existieren.
Swipe to start coding
In dieser Aufgabe erhalten Sie einen Ausgangspunkt zur Definition eines SQLAlchemy-Modells. Ihre Aufgabe ist es, das Modell zu vervollständigen, indem Sie die fehlenden Teile ausfüllen.
- Das Attribut
__tablename__
gibt den Tabellennamen in der Datenbank an. Ersetzen Sie den Platzhalter durch den korrekten Tabellennamen für dasUser
-Modell. - Die Spalte
id
sollte als Primärschlüssel gekennzeichnet werden. Fügen Sie das richtige Schlüsselwort-Argument hinzu, um dies anzugeben. - Die Spalte
username
sollte eindeutig sein, das heißt, keine zwei Benutzer dürfen denselben Benutzernamen haben. Ergänzen Sie das fehlende Schlüsselwort-Argument. - Die Spalte
is_active
sollte einen Standardwert vonTrue
haben. Fügen Sie das passende Argument hinzu, um diesen Standardwert festzulegen.
Lösung
Danke für Ihr Feedback!
single