Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Erstellen Ihres Ersten Modells | SQLAlchemy
Datenbanken in Python

bookErstellen 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.

Aufgabe

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.

  1. Das Attribut __tablename__ gibt den Tabellennamen in der Datenbank an. Ersetzen Sie den Platzhalter durch den korrekten Tabellennamen für das User-Modell.
  2. Die Spalte id sollte als Primärschlüssel gekennzeichnet werden. Fügen Sie das richtige Schlüsselwort-Argument hinzu, um dies anzugeben.
  3. 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.
  4. Die Spalte is_active sollte einen Standardwert von True haben. Fügen Sie das passende Argument hinzu, um diesen Standardwert festzulegen.

Lösung

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 4
single

single

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Suggested prompts:

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?

close

Awesome!

Completion rate improved to 4.76

bookErstellen 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.

Aufgabe

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.

  1. Das Attribut __tablename__ gibt den Tabellennamen in der Datenbank an. Ersetzen Sie den Platzhalter durch den korrekten Tabellennamen für das User-Modell.
  2. Die Spalte id sollte als Primärschlüssel gekennzeichnet werden. Fügen Sie das richtige Schlüsselwort-Argument hinzu, um dies anzugeben.
  3. 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.
  4. Die Spalte is_active sollte einen Standardwert von True haben. Fügen Sie das passende Argument hinzu, um diesen Standardwert festzulegen.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 4
single

single

some-alt