FastAPI-backend-kehityksen intensiivikurssi · Oppitunti

SQLAlchemy ORM:n perusteet

Aloittakaa SQLAlchemy:n Object Relational Mapperin (ORM) käyttö tietokantamallien määrittämiseen ja tietokannan käsittelyyn.

Oppitunti 1/411 vaihetta

SQLAlchemy ORM:n perusteet on ilmainen FastAPI-backend-kehityksen intensiivikurssi-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu FastAPI-backend-kehityksen intensiivikurssi-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. FastAPI-backend-kehityksen intensiivikurssi-kurssilla on yhteensä 4 oppituntia.

Koodin ja tietokantojen yhdistäminen

Tervetuloa SQLAlchemy ORM:n pariin! Opitte yhdistämään Python-koodinne tietokantaan tehokkaalla ja olio-ohjelmointiin perustuvalla tavalla.

Olio-relaatiokartoitin (ORM) on työkalu, jonka avulla tietokannan kanssa voidaan työskennellä ohjelmointikielen olioiden avulla ilman raakaa SQL:ää.

  • Se yhdistää tietokantataulut Python-luokkiin.
  • Se yhdistää tietokantarivit Python-olioihin.
  • Se yhdistää tietokantasarakkeet Python-attribuutteihin.

Tämän ansiosta tietokantaoperaatiot tuntuvat enemmän tavallisten Python-olioiden käsittelyltä.

Tutustukaa SQLAlchemyyn: ORM-työkaluunne

SQLAlchemy on kattava ja tehokas Pythonin ORM. Se tarjoaa monipuolisen valikoiman tunnettuja pysyvyysmalleja tehokkaaseen ja suorituskykyiseen tietokantojen käyttöön.

Keskitymme sen ORM-ominaisuuksiin, joiden avulla tietokannan rakenne eli skeema määritellään Python-luokkien avulla ja dataa käsitellään näiden luokkien ilmentymillä.

Se tukee monia tietokantoja, kuten SQLitea, PostgreSQL:ää ja MySQL:ää sekä monia muita.

Perusta: Declarative Base

Tietokantamallien määrittämisen aloittamiseksi tarvitsemme erityisen perusluokan. SQLAlchemyn Declarative Base tarjoaa tämän perustan.

Se on käytännössä tehdas, joka luo perusluokan ORM-malleillemme. ORM-mallit perivät tästä luokasta, joka yhdistää Python-luokat taustalla oleviin tietokantatauluihin.

Näin haette sen:

from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

Ensimmäisen mallin määrittäminen

Kun käytössänne on Base, voitte määrittää tietokantataulut Python-luokkina. Kukin luokka edustaa taulua, ja sen attribuutit edustavat sarakkeita.

Luodaan yksinkertainen User-malli. Siinä on id- ja name-attribuutit.

from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    name = Column(String(50))

Mallin attribuutit: sarakkeet

User-mallissamme id ja name määritellään Column-olioiden avulla. Column-funktion avulla voitte määrittää kunkin tietokantasarakkeen tiedot:

  • Datatyyppi: Integer kokonaisluvuille ja String tekstille. SQLAlchemy tarjoaa monia muitakin tyyppejä!
  • Ensisijainen avain: primary_key=True merkitsee sarakkeen kunkin rivin yksilöiväksi tunnisteeksi.
  • Pituus: String(50) määrittää tekstikenttien enimmäispituudeksi 50 merkkiä.
  • Tyhjyyden salliminen: Sarakkeet sallivat oletusarvoisesti tyhjän arvon. Asettamalla nullable=False vaaditte arvon.

__tablename__-attribuutti on tärkeä: se kertoo SQLAlchemylle tietokannassa käytettävän taulun todellisen nimen.

Tietokantamoottorin määrittäminen

Ennen kuin voimme luoda tauluja tai käsitellä tietokantaa, SQLAlchemyn on tiedettävä, missä tietokanta sijaitsee! Tässä Engine tulee mukaan.

Engine on jokaisen SQLAlchemy-sovelluksen lähtökohta. Se yhdistää sovelluksen tiettyyn tietokantaan yhteysmerkkijonon avulla.

Yksinkertaisuuden vuoksi käytämme muistinvaraista SQLite-tietokantaa. Se sopii erinomaisesti testaamiseen, koska se katoaa ohjelman päättyessä:

from sqlalchemy import create_engine

# Connect to an in-memory SQLite database
engine = create_engine('sqlite:///:memory:')

# For a file-based SQLite database:
# engine = create_engine('sqlite:///./test.db')

Tietokantataulujen luominen

Kun käytössämme ovat Base, määritetyt mallit ja engine, voimme nyt luoda varsinaiset tietokantataulut!

Base.metadata.create_all(engine)-metodi tarkastaa kaikki luokat, jotka perivät Base-luokan, ja luo vastaavat taulut engine-moottoriin yhdistettyyn tietokantaan.

Jos taulut ovat jo olemassa, SQLAlchemy ei yritä luoda niitä uudelleen, mikä estää virheet.

Kokonainen esimerkki: määrittäminen ja luominen

Kootaan kaikki yhteen! Suorittakaa tämä koodi nähdäksenne, miten malli määritetään ja sen taulu luodaan muistinvaraiseen SQLite-tietokantaan.

Huomaatte, kuinka tuomme kaiken tarvittavan, määritämme Base-luokan, luomme User-mallin, määritämme engine-moottorin ja lopuksi luomme taulut.

from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base

# 1. Define the Base for ORM models
Base = declarative_base()

# 2. Define a Model (e.g., User table)
class User(Base):
    __tablename__ = 'users' # The actual table name in the database
    id = Column(Integer, primary_key=True) # Unique ID, automatically managed
    name = Column(String(50), nullable=False) # User's name, max 50 chars, required

    # A helpful representation for printing User objects
    def __repr__(self):
        return f"<User(id={self.id}, name='{self.name}')>"

# 3. Create a database engine
# Using an in-memory SQLite database for simplicity
engine = create_engine('sqlite:///:memory:')

# 4. Create all tables defined in Base
Base.metadata.create_all(engine)

print("Database tables created successfully!")
print("The 'users' table is now ready for data.")

Tietokantakäsittelyn keskus: Session

Mallien määrittäminen ja taulujen luominen ovat vasta ensimmäiset vaiheet. Jotta voitte todella käsitellä dataa (lisätä, hakea, päivittää ja poistaa), tarvitsette Session-istunnon.

Session on kuin tietokantaoperaatioiden väliaikainen työtila. Se sisältää kaikki lataamanne tai luomanne oliot ja seuraa niiden muutoksia.

Session luodaan käyttämällä sessionmaker-toimintoa ja sitomalla se engine-moottoriin:

from sqlalchemy.orm import sessionmaker
from sqlalchemy import create_engine

# (Assume 'engine' is already created as shown before)
engine = create_engine('sqlite:///:memory:')

# Create a Session factory
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)

# To get a session:
# db = SessionLocal()
# try:
#     # Perform operations with db
#     pass
# finally:
#     db.close()

Pikatarkistus: mallin määrittäminen

Olette oppineet SQLAlchemy ORM:n perusasetusten määrittämisen. Testataan ymmärryksenne keskeisistä komponenteista.

Kertaus: SQLAlchemy ORM:n perusteet

Hienoa työtä! Olette ottaneet ensimmäiset askeleenne SQLAlchemy ORM:n maailmassa.

Tässä ovat käsitellyt asiat:

  • Mikä ORM on: Yhdistää Python-oliot tietokantatauluihin.
  • SQLAlchemy: Tehokas Python ORM.
  • Declarative Base: Mallien perusta (Base = declarative_base()).
  • Mallien määrittäminen: Luodaan Python-luokkia, kuten User, jotka perivät luokan Base.
  • Sarakkeet: Käytetään Column-sarakkeita tietotyyppien (Integer, String) ja määritteiden (primary_key) kanssa.
  • Engine: Muodostaa yhteyden tietokantaan (create_engine).
  • Taulujen luominen: Luodaan mallit tietokantaan (Base.metadata.create_all(engine)).
  • Session: Tietokantatoimintojen työtila (sessionmaker).

Seuraavaksi opitte näiden käsitteiden avulla, miten tietoja lisätään, haetaan, päivitetään ja poistetaan!

Aloita maksutta

Opi FastAPI-backend-kehityksen intensiivikurssi tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
21
Oppitunnit
84

Usein kysytyt kysymykset

Onko oppitunti ”SQLAlchemy ORM:n perusteet” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa FastAPI-backend-kehityksen intensiivikurssi-oppimispolun 3 oppituntia, myös oppitunnin “SQLAlchemy ORM:n perusteet”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. FastAPI-backend-kehityksen intensiivikurssi-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”SQLAlchemy ORM:n perusteet”?

Aloittakaa SQLAlchemy:n Object Relational Mapperin (ORM) käyttö tietokantamallien määrittämiseen ja tietokannan käsittelyyn. Harjoittelet FastAPI-backend-kehityksen intensiivikurssi-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni FastAPI-backend-kehityksen intensiivikurssi-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin FastAPI-backend-kehityksen intensiivikurssi-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”SQLAlchemy ORM:n perusteet”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä FastAPI-backend-kehityksen intensiivikurssi-oppitunnilla?

Kyllä. Jokainen FastAPI-backend-kehityksen intensiivikurssi-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. SQLAlchemy ORM:n perusteet
  2. FastAPI:n yhdistäminen PostgreSQL:ään
  3. CRUD-toiminnot SQLAlchemylla
  4. Tietokantamigraatiot Alembicilla
← Takaisin: FastAPI-backend-kehityksen intensiivikurssi