Ensimmä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.
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.
__tablename__
-attribuutti määrittää tietokantataulun nimen. Korvaa paikkamerkki oikealla taulun nimelläUser
-mallille.id
-sarakkeen tulee olla ensisijainen avain. Lisää oikea avainsana osoittamaan tämä.username
-sarakkeen tulee olla yksilöllinen, eli kahdella käyttäjällä ei voi olla samaa käyttäjätunnusta. Täydennä puuttuva avainsana.is_active
-sarakkeella tulee olla oletusarvoTrue
. Lisää oikea argumentti asettaaksesi tämä oletusarvo.
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
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?
Awesome!
Completion rate improved to 4.76
Ensimmä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.
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.
__tablename__
-attribuutti määrittää tietokantataulun nimen. Korvaa paikkamerkki oikealla taulun nimelläUser
-mallille.id
-sarakkeen tulee olla ensisijainen avain. Lisää oikea avainsana osoittamaan tämä.username
-sarakkeen tulee olla yksilöllinen, eli kahdella käyttäjällä ei voi olla samaa käyttäjätunnusta. Täydennä puuttuva avainsana.is_active
-sarakkeella tulee olla oletusarvoTrue
. Lisää oikea argumentti asettaaksesi tämä oletusarvo.
Ratkaisu
Kiitos palautteestasi!
single