Kyselyt Sessionilla
Lue ja suodata tietoja
Kyselyt Sessionilla on ilmainen Python Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Python Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Python Academy-kurssilla on yhteensä 4 oppituntia.
Session
ORM suorittaa kaiken työnsä Session-olion kautta. Se hallinnoi työyksikköä: seuraa uusia, muuttuneita ja poistettuja olioita sekä kommunikoi tietokannan kanssa.
from sqlalchemy import create_engine
from sqlalchemy.orm import Session
engine = create_engine('sqlite:///:memory:')
with Session(engine) as session:
print('Session open:', session)Olioiden lisääminen
session.add() asettaa uuden olion käsiteltäväksi. Mitään ei kirjoiteta tietokantaan, ennen kuin kutsutte commit()-metodia.
from sqlalchemy.orm import Session
# session.add(user) stages it
# session.commit() writes it
print('add stages, commit saves')Muutosten vahvistaminen
session.commit() kirjoittaa odottavat muutokset tietokantaan ja vahvistaa tapahtuman, jolloin muutokset muuttuvat pysyviksi.
# with Session(engine) as session:
# session.add(User(name='Alice'))
# session.commit()
print('commit persists the work')Kyselyt select()-funktiolla
Moderni SQLAlchemy lukee tietoja select()-funktion avulla, ja kysely suoritetaan istunnon kautta. scalars() palauttaa mallin oliot.
from sqlalchemy import select
# stmt = select(User)
# users = session.scalars(stmt).all()
print('select(User) then scalars().all()')Kaikkien rivien hakeminen
session.scalars(select(User)).all() palauttaa luettelon kaikista taulukon User-olioista.
from sqlalchemy import select
# all_users = session.scalars(select(User)).all()
# for u in all_users:
# print(u.name)
print('all() returns a list of objects')Suodattaminen where()-funktiolla
Lisätkää suodattamista varten where()-ehto. Verratkaa ORM-malliin yhdistettyä saraketta tavallisella Python-operaattorilla.
from sqlalchemy import select
# stmt = select(User).where(User.age > 28)
# adults = session.scalars(stmt).all()
print('where(User.age > 28) filters rows')Yhden olion hakeminen
session.scalars(stmt).first() palauttaa ensimmäisen osuman tai arvon None. one() odottaa täsmälleen yhtä riviä ja aiheuttaa virheen muussa tapauksessa.
from sqlalchemy import select
# stmt = select(User).where(User.name == 'Alice')
# user = session.scalars(stmt).first()
print('first() = first match or None')Haku perusavaimella
session.get(User, 1) on nopein tapa hakea yksittäinen olio sen perusavaimen perusteella.
# user = session.get(User, 1)
# print(user.name)
print('session.get(Model, pk) fetches by id')Tulosten järjestäminen
Ketjuttakaa order_by()-metodi tulosten lajittelemiseksi. Käyttäkää sarakkeessa .desc()-metodia laskevaan järjestykseen.
from sqlalchemy import select
# stmt = select(User).order_by(User.age.desc())
# sorted_users = session.scalars(stmt).all()
print('order_by(User.age.desc()) sorts results')Olion päivittäminen
Muuttakaa ladatun olion attribuuttia ja kutsukaa sitten commit()-metodia. Istunto tunnistaa muutoksen ja suorittaa UPDATE-lauseen.
# user = session.get(User, 1)
# user.name = 'Alicia'
# session.commit() # auto UPDATE
print('Edit attribute, then commit')Olion poistaminen
session.delete(obj) merkitsee olion poistettavaksi. DELETE suoritetaan seuraavan vahvistuksen yhteydessä.
# user = session.get(User, 1)
# session.delete(user)
# session.commit() # row removed
print('delete(obj) then commit removes the row')Pikatarkistus
Testatkaa Session-osaamistanne.
Kertaus
Opitte lukemaan ja muuttamaan tietoja Session-olion kautta.
Sessionseuraa työyksikköänneadd()asettaa olion käsiteltäväksi jacommit()tallentaa muutokset pysyvästiselect()+scalars()lukee oliot;where()suodattaa tuloksiasession.get()hakee olion perusavaimen perusteella; muokkaukset jadelete()tulevat voimaan vahvistuksen yhteydessä
Opi Python 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
- 76
- Oppitunnit
- 320
Usein kysytyt kysymykset
Onko oppitunti ”Kyselyt Sessionilla” ilmainen?
Kyllä – oppitunnin ”Kyselyt Sessionilla” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Python Academy-kurssin, päivitä CoddyKit PROhon. Python Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Kyselyt Sessionilla”?
Lue ja suodata tietoja Harjoittelet Python Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Python Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Python Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.
Kuinka kauan ”Kyselyt Sessionilla”-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ä Python Academy-oppitunnilla?
Kyllä. Jokainen Python Academy-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
- SQLAlchemy Core vai ORM
- Mallien määrittäminen
- Kyselyt Sessionilla
- Relaatiot ja liitokset