Erstellen Ihres Ersten Modells
In SQLAlchemy umfasst das Erstellen eines Modells die Definition einer Python-Klasse, die einer Tabelle in der Datenbank entspricht. Jede Instanz dieser Klasse repräsentiert eine Zeile in der Tabelle. Im Folgenden ein einfaches Beispiel, 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 content enthält den Text eines Kommentars. Es handelt sich um ein Pflichtfeld, sodass ein Kommentar nicht zur Datenbank hinzugefügt werden kann, wenn dieses Feld null ist.
created_at = Column(DateTime, default=datetime.utcnow)
Das Feld created_at speichert automatisch den Zeitstempel, zu dem der Kommentar erstellt wurde. Wird kein Wert angegeben, 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 Elemente ergänzen.
- Das Attribut
__tablename__gibt den Tabellennamen in der Datenbank an. Ersetzen Sie den Platzhalter durch den korrekten Tabellennamen für dasUser-Modell. - Die Spalte
idsoll als Primärschlüssel gekennzeichnet werden. Fügen Sie das passende Schlüsselwort-Argument hinzu, um dies anzugeben. - Die Spalte
usernamesoll eindeutig sein, das heißt, kein Benutzer darf denselben Benutzernamen haben. Ergänzen Sie das fehlende Schlüsselwort-Argument. - Die Spalte
is_activesoll einen Standardwert vonTruehaben. Fügen Sie das entsprechende Argument hinzu, um diesen Standardwert zu setzen.
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
Awesome!
Completion rate improved to 4.76
Erstellen Ihres Ersten Modells
Swipe um das Menü anzuzeigen
In SQLAlchemy umfasst das Erstellen eines Modells die Definition einer Python-Klasse, die einer Tabelle in der Datenbank entspricht. Jede Instanz dieser Klasse repräsentiert eine Zeile in der Tabelle. Im Folgenden ein einfaches Beispiel, 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 content enthält den Text eines Kommentars. Es handelt sich um ein Pflichtfeld, sodass ein Kommentar nicht zur Datenbank hinzugefügt werden kann, wenn dieses Feld null ist.
created_at = Column(DateTime, default=datetime.utcnow)
Das Feld created_at speichert automatisch den Zeitstempel, zu dem der Kommentar erstellt wurde. Wird kein Wert angegeben, 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 Elemente ergänzen.
- Das Attribut
__tablename__gibt den Tabellennamen in der Datenbank an. Ersetzen Sie den Platzhalter durch den korrekten Tabellennamen für dasUser-Modell. - Die Spalte
idsoll als Primärschlüssel gekennzeichnet werden. Fügen Sie das passende Schlüsselwort-Argument hinzu, um dies anzugeben. - Die Spalte
usernamesoll eindeutig sein, das heißt, kein Benutzer darf denselben Benutzernamen haben. Ergänzen Sie das fehlende Schlüsselwort-Argument. - Die Spalte
is_activesoll einen Standardwert vonTruehaben. Fügen Sie das entsprechende Argument hinzu, um diesen Standardwert zu setzen.
Lösung
Danke für Ihr Feedback!
single