Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Ensimmäisen Mallin Luominen | SQLAlchemy
Tietokannat Pythonissa

bookEnsimmäisen Mallin Luominen

SQLAlchemyn avulla mallin luominen tarkoittaa Python-luokan määrittämistä, joka vastaa tietokannan taulua. Jokainen tämän luokan ilmentymä edustaa yhtä riviä taulussa. Käydään läpi yksinkertainen esimerkki, jossa luodaan Comment-malli käyttäjien kommenttien tallentamista varten.

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)

Tässä määritellään Python-luokka nimeltä Comment, joka edustaa taulua tietokannassa. Luokka perii Base-luokan, mikä mahdollistaa sen liittämisen tietokannan tauluun.

__tablename__ = "comments"

Comment-luokka, joka perii Base-luokan, määrittelee taulun tietokantaan. Tämä mahdollistaa sen liittämisen tietokantatauluun käyttäen Object-Relational Mapping (ORM) -tekniikkaa.

id = Column(Integer, primary_key=True)

id-kenttä toimii ensisijaisena avaimena, varmistaen, että jokaisella kommentilla on yksilöllinen tunniste. SQLAlchemy kasvattaa arvoa automaattisesti jokaiselle uudelle tietueelle.

content = Column(Text, nullable=False)

id-kenttä sisältää kommentin sisällön, eikä se voi olla tyhjä (null).

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

created_at-kenttä tallentaa automaattisesti aikaleiman sille hetkelle, kun kommentti luodaan. Jos arvoa ei anneta, se asetetaan nykyhetkeen käyttäen datetime.utcnow, jolloin aikaleima tallennetaan UTC-aikavyöhykkeellä.

Base.metadata.create_all(engine)

Tämä rivi luo kaikki taulut tietokantaan, jotka on määritelty malleissa. Se käyttää metadatan tietoja ja luo tarvittavat taulut annetun engine-yhteyden kautta. Tämä on hyödyllistä, kun halutaan luoda taulut automaattisesti, jos niitä ei vielä ole olemassa.

Tehtävä

Swipe to start coding

Tässä tehtävässä sinulle annetaan lähtökohta SQLAlchemy-mallin määrittelyyn. Tehtävänäsi on täydentää malli täyttämällä puuttuvat kohdat.

  1. __tablename__-attribuutti määrittää tietokantataulun nimen. Korvaa paikkamerkki oikealla taulun nimellä User-mallille.
  2. id-sarakkeen tulee olla ensisijainen avain. Lisää oikea avainsana osoittamaan tämä.
  3. username-sarakkeen tulee olla yksilöllinen, eli kahdella käyttäjällä ei voi olla samaa käyttäjätunnusta. Täydennä puuttuva avainsana.
  4. is_active-sarakkeella tulee olla oletusarvo True. Lisää oikea argumentti asettaaksesi tämä oletusarvo.

Ratkaisu

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 4
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

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

bookEnsimmäisen Mallin Luominen

Pyyhkäise näyttääksesi valikon

SQLAlchemyn avulla mallin luominen tarkoittaa Python-luokan määrittämistä, joka vastaa tietokannan taulua. Jokainen tämän luokan ilmentymä edustaa yhtä riviä taulussa. Käydään läpi yksinkertainen esimerkki, jossa luodaan Comment-malli käyttäjien kommenttien tallentamista varten.

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)

Tässä määritellään Python-luokka nimeltä Comment, joka edustaa taulua tietokannassa. Luokka perii Base-luokan, mikä mahdollistaa sen liittämisen tietokannan tauluun.

__tablename__ = "comments"

Comment-luokka, joka perii Base-luokan, määrittelee taulun tietokantaan. Tämä mahdollistaa sen liittämisen tietokantatauluun käyttäen Object-Relational Mapping (ORM) -tekniikkaa.

id = Column(Integer, primary_key=True)

id-kenttä toimii ensisijaisena avaimena, varmistaen, että jokaisella kommentilla on yksilöllinen tunniste. SQLAlchemy kasvattaa arvoa automaattisesti jokaiselle uudelle tietueelle.

content = Column(Text, nullable=False)

id-kenttä sisältää kommentin sisällön, eikä se voi olla tyhjä (null).

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

created_at-kenttä tallentaa automaattisesti aikaleiman sille hetkelle, kun kommentti luodaan. Jos arvoa ei anneta, se asetetaan nykyhetkeen käyttäen datetime.utcnow, jolloin aikaleima tallennetaan UTC-aikavyöhykkeellä.

Base.metadata.create_all(engine)

Tämä rivi luo kaikki taulut tietokantaan, jotka on määritelty malleissa. Se käyttää metadatan tietoja ja luo tarvittavat taulut annetun engine-yhteyden kautta. Tämä on hyödyllistä, kun halutaan luoda taulut automaattisesti, jos niitä ei vielä ole olemassa.

Tehtävä

Swipe to start coding

Tässä tehtävässä sinulle annetaan lähtökohta SQLAlchemy-mallin määrittelyyn. Tehtävänäsi on täydentää malli täyttämällä puuttuvat kohdat.

  1. __tablename__-attribuutti määrittää tietokantataulun nimen. Korvaa paikkamerkki oikealla taulun nimellä User-mallille.
  2. id-sarakkeen tulee olla ensisijainen avain. Lisää oikea avainsana osoittamaan tämä.
  3. username-sarakkeen tulee olla yksilöllinen, eli kahdella käyttäjällä ei voi olla samaa käyttäjätunnusta. Täydennä puuttuva avainsana.
  4. is_active-sarakkeella tulee olla oletusarvo True. Lisää oikea argumentti asettaaksesi tämä oletusarvo.

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 4
single

single

some-alt