Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Skapa Din Första Modell | SQLAlchemy
Databaser i Python

bookSkapa Din Första Modell

I SQLAlchemy innebär att skapa en modell att definiera en Python-klass som motsvarar en tabell i databasen. Varje instans av denna klass representerar en rad i tabellen. Här följer ett enkelt exempel där vi skapar en Comment-modell för att lagra användarkommentarer.

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)

Detta definierar en Python-klass kallad Comment, som representerar en tabell i databasen. Klassen ärver från Base, vilket möjliggör att den kan mappas till en tabell i databasen.

__tablename__ = "comments"

Comment-klassen, som ärver från Base, definierar en tabell i databasen. Detta möjliggör mappning till en databastabell med hjälp av Object-Relational Mapping (ORM).

id = Column(Integer, primary_key=True)

Fältet id fungerar som primärnyckel och säkerställer att varje kommentar har en unik identifierare. SQLAlchemy ökar automatiskt värdet för varje ny post.

content = Column(Text, nullable=False)

Fältet id innehåller kommentarens innehåll och får inte vara null.

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

Fältet created_at lagrar automatiskt tidsstämpeln för när kommentaren skapades. Om inget värde anges sätts det till aktuell tid med datetime.utcnow, vilket säkerställer att tidsstämpeln registreras i UTC.

Base.metadata.create_all(engine)

Denna rad skapar alla tabeller i databasen som definierats i modellerna. Den använder informationen från metadata och skapar nödvändiga tabeller via anslutningen som tillhandahålls av engine. Detta är användbart för att automatiskt skapa tabeller om de inte redan finns.

Uppgift

Swipe to start coding

I denna uppgift får du en startpunkt för att definiera en SQLAlchemy-modell. Din uppgift är att komplettera modellen genom att fylla i de saknade delarna.

  1. Attributet __tablename__ anger tabellnamnet i databasen. Byt ut platshållaren mot det korrekta tabellnamnet för modellen User.
  2. Kolumnen id ska markeras som primärnyckel. Lägg till rätt nyckelargument för att ange detta.
  3. Kolumnen username ska vara unik, vilket innebär att inga två användare kan ha samma användarnamn. Fyll i det saknade nyckelargumentet.
  4. Kolumnen is_active ska ha ett standardvärdeTrue. Lägg till rätt argument för att ange detta standardvärde.

Lösning

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 4
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

close

Awesome!

Completion rate improved to 4.76

bookSkapa Din Första Modell

Svep för att visa menyn

I SQLAlchemy innebär att skapa en modell att definiera en Python-klass som motsvarar en tabell i databasen. Varje instans av denna klass representerar en rad i tabellen. Här följer ett enkelt exempel där vi skapar en Comment-modell för att lagra användarkommentarer.

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)

Detta definierar en Python-klass kallad Comment, som representerar en tabell i databasen. Klassen ärver från Base, vilket möjliggör att den kan mappas till en tabell i databasen.

__tablename__ = "comments"

Comment-klassen, som ärver från Base, definierar en tabell i databasen. Detta möjliggör mappning till en databastabell med hjälp av Object-Relational Mapping (ORM).

id = Column(Integer, primary_key=True)

Fältet id fungerar som primärnyckel och säkerställer att varje kommentar har en unik identifierare. SQLAlchemy ökar automatiskt värdet för varje ny post.

content = Column(Text, nullable=False)

Fältet id innehåller kommentarens innehåll och får inte vara null.

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

Fältet created_at lagrar automatiskt tidsstämpeln för när kommentaren skapades. Om inget värde anges sätts det till aktuell tid med datetime.utcnow, vilket säkerställer att tidsstämpeln registreras i UTC.

Base.metadata.create_all(engine)

Denna rad skapar alla tabeller i databasen som definierats i modellerna. Den använder informationen från metadata och skapar nödvändiga tabeller via anslutningen som tillhandahålls av engine. Detta är användbart för att automatiskt skapa tabeller om de inte redan finns.

Uppgift

Swipe to start coding

I denna uppgift får du en startpunkt för att definiera en SQLAlchemy-modell. Din uppgift är att komplettera modellen genom att fylla i de saknade delarna.

  1. Attributet __tablename__ anger tabellnamnet i databasen. Byt ut platshållaren mot det korrekta tabellnamnet för modellen User.
  2. Kolumnen id ska markeras som primärnyckel. Lägg till rätt nyckelargument för att ange detta.
  3. Kolumnen username ska vara unik, vilket innebär att inga två användare kan ha samma användarnamn. Fyll i det saknade nyckelargumentet.
  4. Kolumnen is_active ska ha ett standardvärdeTrue. Lägg till rätt argument för att ange detta standardvärde.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 4
single

single

some-alt