Oprettelse af Din Første Model
I SQLAlchemy indebærer oprettelse af en model at definere en Python-klasse, der svarer til en tabel i databasen. Hver instans af denne klasse repræsenterer en række i tabellen. Her gennemgås et simpelt eksempel, hvor der oprettes en Comment
-model til lagring af brugerkommentarer.
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)
Dette definerer en Python-klasse kaldet Comment
, som repræsenterer en tabel i databasen. Klassen arver fra Base
, hvilket muliggør mapping til en tabel i databasen.
__tablename__ = "comments"
Comment
-klassen, der arver fra Base
, definerer en tabel i databasen. Dette muliggør mapping til en databasetabel ved brug af Object-Relational Mapping (ORM).
id = Column(Integer, primary_key=True)
Feltet id
fungerer som primærnøgle og sikrer, at hver kommentar har en unik identifikator. SQLAlchemy øger automatisk værdien for hver ny post.
content = Column(Text, nullable=False)
Feltet id
indeholder kommentarens indhold og må ikke være tomt.
created_at = Column(DateTime, default=datetime.utcnow)
Feltet created_at
gemmer automatisk tidsstemplet for, hvornår kommentaren blev oprettet. Hvis der ikke angives en værdi, sættes den til det aktuelle tidspunkt ved hjælp af datetime.utcnow
, hvilket sikrer, at tidsstemplet registreres i UTC.
Base.metadata.create_all(engine)
Denne linje opretter alle tabeller i databasen, der er defineret i modellerne. Den anvender oplysninger fra metadata og opretter de nødvendige tabeller via forbindelsen, der leveres af engine. Dette er nyttigt til automatisk oprettelse af tabeller, hvis de ikke allerede eksisterer.
Swipe to start coding
I denne opgave får du et udgangspunkt for at definere en SQLAlchemy-model. Din opgave er at færdiggøre modellen ved at udfylde de manglende dele.
- Attributten
__tablename__
angiver navnet på tabellen i databasen. Udskift pladsholderen med det korrekte tabelnavn forUser
-modellen. - Kolonnen
id
skal markeres som primærnøgle. Tilføj det korrekte nøgleargument for at angive dette. - Kolonnen
username
skal være unik, hvilket betyder, at to brugere ikke kan have samme brugernavn. Udfyld det manglende nøgleargument. - Kolonnen
is_active
skal have en standardværdi påTrue
. Tilføj det rette argument for at angive denne standardværdi.
Løsning
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Awesome!
Completion rate improved to 4.76
Oprettelse af Din Første Model
Stryg for at vise menuen
I SQLAlchemy indebærer oprettelse af en model at definere en Python-klasse, der svarer til en tabel i databasen. Hver instans af denne klasse repræsenterer en række i tabellen. Her gennemgås et simpelt eksempel, hvor der oprettes en Comment
-model til lagring af brugerkommentarer.
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)
Dette definerer en Python-klasse kaldet Comment
, som repræsenterer en tabel i databasen. Klassen arver fra Base
, hvilket muliggør mapping til en tabel i databasen.
__tablename__ = "comments"
Comment
-klassen, der arver fra Base
, definerer en tabel i databasen. Dette muliggør mapping til en databasetabel ved brug af Object-Relational Mapping (ORM).
id = Column(Integer, primary_key=True)
Feltet id
fungerer som primærnøgle og sikrer, at hver kommentar har en unik identifikator. SQLAlchemy øger automatisk værdien for hver ny post.
content = Column(Text, nullable=False)
Feltet id
indeholder kommentarens indhold og må ikke være tomt.
created_at = Column(DateTime, default=datetime.utcnow)
Feltet created_at
gemmer automatisk tidsstemplet for, hvornår kommentaren blev oprettet. Hvis der ikke angives en værdi, sættes den til det aktuelle tidspunkt ved hjælp af datetime.utcnow
, hvilket sikrer, at tidsstemplet registreres i UTC.
Base.metadata.create_all(engine)
Denne linje opretter alle tabeller i databasen, der er defineret i modellerne. Den anvender oplysninger fra metadata og opretter de nødvendige tabeller via forbindelsen, der leveres af engine. Dette er nyttigt til automatisk oprettelse af tabeller, hvis de ikke allerede eksisterer.
Swipe to start coding
I denne opgave får du et udgangspunkt for at definere en SQLAlchemy-model. Din opgave er at færdiggøre modellen ved at udfylde de manglende dele.
- Attributten
__tablename__
angiver navnet på tabellen i databasen. Udskift pladsholderen med det korrekte tabelnavn forUser
-modellen. - Kolonnen
id
skal markeres som primærnøgle. Tilføj det korrekte nøgleargument for at angive dette. - Kolonnen
username
skal være unik, hvilket betyder, at to brugere ikke kan have samme brugernavn. Udfyld det manglende nøgleargument. - Kolonnen
is_active
skal have en standardværdi påTrue
. Tilføj det rette argument for at angive denne standardværdi.
Løsning
Tak for dine kommentarer!
single