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

bookOpprette Din Første Modell

I SQLAlchemy innebærer det å opprette en modell å definere en Python-klasse som tilsvarer en tabell i databasen. Hver instans av denne klassen representerer en rad i tabellen. Her følger et enkelt eksempel der vi oppretter en Comment-modell for lagring av brukernes kommentarer.

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 kalt Comment, som representerer en tabell i databasen. Klassen arver fra Base, noe som gjør det mulig å knytte den til en tabell i databasen.

__tablename__ = "comments"

Comment-klassen, som arver fra Base, definerer en tabell i databasen. Dette gjør det mulig å knytte den til en databasetabell ved hjelp av Object-Relational Mapping (ORM).

id = Column(Integer, primary_key=True)

Feltet id fungerer som primærnøkkel, og sikrer at hver kommentar har en unik identifikator. SQLAlchemy øker automatisk verdien for hver ny post.

content = Column(Text, nullable=False)

Feltet id fungerer som primærnøkkel, og sikrer at hver kommentar har en unik identifikator. SQLAlchemy øker automatisk verdien for hver ny post.

created_at = Column(DateTime, default=datetime.utcnow)

Feltet created_at lagrer automatisk tidsstempelet for når kommentaren ble opprettet. Hvis ingen verdi oppgis, settes det til nåværende tidspunkt ved bruk av datetime.utcnow, slik at tidsstempelet registreres i UTC.

Base.metadata.create_all(engine)

Denne linjen oppretter alle tabeller i databasen som er definert i modellene. Den bruker informasjonen fra metadata og oppretter nødvendige tabeller via tilkoblingen som tilbys av engine. Dette er nyttig for automatisk opprettelse av tabeller dersom de ikke allerede eksisterer.

Oppgave

Swipe to start coding

I denne oppgaven får du et utgangspunkt for å definere en SQLAlchemy-modell. Din oppgave er å fullføre modellen ved å fylle inn de manglende delene.

  1. Attributtet __tablename__ angir tabellnavnet i databasen. Bytt ut plassholderen med riktig tabellnavn for User-modellen.
  2. Kolonnen id skal markeres som primærnøkkel. Legg til riktig nøkkelordargument for å angi dette.
  3. Kolonnen username skal være unik, slik at ingen to brukere kan ha samme brukernavn. Fyll inn det manglende nøkkelordargumentet.
  4. Kolonnen is_active skal ha en standardverdiTrue. Legg til riktig argument for å angi denne standardverdien.

Løsning

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 4
single

single

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

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

bookOpprette Din Første Modell

Sveip for å vise menyen

I SQLAlchemy innebærer det å opprette en modell å definere en Python-klasse som tilsvarer en tabell i databasen. Hver instans av denne klassen representerer en rad i tabellen. Her følger et enkelt eksempel der vi oppretter en Comment-modell for lagring av brukernes kommentarer.

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 kalt Comment, som representerer en tabell i databasen. Klassen arver fra Base, noe som gjør det mulig å knytte den til en tabell i databasen.

__tablename__ = "comments"

Comment-klassen, som arver fra Base, definerer en tabell i databasen. Dette gjør det mulig å knytte den til en databasetabell ved hjelp av Object-Relational Mapping (ORM).

id = Column(Integer, primary_key=True)

Feltet id fungerer som primærnøkkel, og sikrer at hver kommentar har en unik identifikator. SQLAlchemy øker automatisk verdien for hver ny post.

content = Column(Text, nullable=False)

Feltet id fungerer som primærnøkkel, og sikrer at hver kommentar har en unik identifikator. SQLAlchemy øker automatisk verdien for hver ny post.

created_at = Column(DateTime, default=datetime.utcnow)

Feltet created_at lagrer automatisk tidsstempelet for når kommentaren ble opprettet. Hvis ingen verdi oppgis, settes det til nåværende tidspunkt ved bruk av datetime.utcnow, slik at tidsstempelet registreres i UTC.

Base.metadata.create_all(engine)

Denne linjen oppretter alle tabeller i databasen som er definert i modellene. Den bruker informasjonen fra metadata og oppretter nødvendige tabeller via tilkoblingen som tilbys av engine. Dette er nyttig for automatisk opprettelse av tabeller dersom de ikke allerede eksisterer.

Oppgave

Swipe to start coding

I denne oppgaven får du et utgangspunkt for å definere en SQLAlchemy-modell. Din oppgave er å fullføre modellen ved å fylle inn de manglende delene.

  1. Attributtet __tablename__ angir tabellnavnet i databasen. Bytt ut plassholderen med riktig tabellnavn for User-modellen.
  2. Kolonnen id skal markeres som primærnøkkel. Legg til riktig nøkkelordargument for å angi dette.
  3. Kolonnen username skal være unik, slik at ingen to brukere kan ha samme brukernavn. Fyll inn det manglende nøkkelordargumentet.
  4. Kolonnen is_active skal ha en standardverdiTrue. Legg til riktig argument for å angi denne standardverdien.

Løsning

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 4
single

single

some-alt