Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Oprettelse af Din Første Model | SQLAlchemy
Databaser i Python

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

Opgave

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.

  1. Attributten __tablename__ angiver navnet på tabellen i databasen. Udskift pladsholderen med det korrekte tabelnavn for User-modellen.
  2. Kolonnen id skal markeres som primærnøgle. Tilføj det korrekte nøgleargument for at angive dette.
  3. Kolonnen username skal være unik, hvilket betyder, at to brugere ikke kan have samme brugernavn. Udfyld det manglende nøgleargument.
  4. Kolonnen is_active skal have en standardværdiTrue. Tilføj det rette argument for at angive denne standardværdi.

Løsning

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 4
single

single

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

close

Awesome!

Completion rate improved to 4.76

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

Opgave

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.

  1. Attributten __tablename__ angiver navnet på tabellen i databasen. Udskift pladsholderen med det korrekte tabelnavn for User-modellen.
  2. Kolonnen id skal markeres som primærnøgle. Tilføj det korrekte nøgleargument for at angive dette.
  3. Kolonnen username skal være unik, hvilket betyder, at to brugere ikke kan have samme brugernavn. Udfyld det manglende nøgleargument.
  4. Kolonnen is_active skal have en standardværdiTrue. Tilføj det rette argument for at angive denne standardværdi.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 4
single

single

some-alt