Membuat Kueri dengan Session
Baca dan saring data
Membuat Kueri dengan Session adalah pelajaran Python Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Python Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Python Academy mencakup 4 pelajaran total.
Sesi
ORM menjalankan seluruh pekerjaannya melalui Sesi. Sesi mengelola satu unit kerja: melacak objek baru, yang berubah, dan yang dihapus, serta berkomunikasi dengan basis data.
from sqlalchemy import create_engine
from sqlalchemy.orm import Session
engine = create_engine('sqlite:///:memory:')
with Session(engine) as session:
print('Session open:', session)Menambahkan Objek
session.add() menyiapkan objek baru. Tidak ada data yang dikirim ke basis data sampai Anda menjalankan commit().
from sqlalchemy.orm import Session
# session.add(user) stages it
# session.commit() writes it
print('add stages, commit saves')Menerapkan Perubahan
session.commit() menerapkan perubahan yang tertunda dan menyelesaikan transaksi sehingga perubahan tersebut menjadi permanen.
# with Session(engine) as session:
# session.add(User(name='Alice'))
# session.commit()
print('commit persists the work')Melakukan Kueri dengan select()
SQLAlchemy modern membaca data dengan select(), yang dijalankan melalui sesi. scalars() mengembalikan instans model.
from sqlalchemy import select
# stmt = select(User)
# users = session.scalars(stmt).all()
print('select(User) then scalars().all()')Mendapatkan Semua Baris
session.scalars(select(User)).all() mengembalikan daftar semua objek pengguna dalam tabel.
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')Memfilter dengan where()
Tambahkan klausa where() untuk memfilter data. Bandingkan kolom yang dipetakan dengan operator Python biasa.
from sqlalchemy import select
# stmt = select(User).where(User.age > 28)
# adults = session.scalars(stmt).all()
print('where(User.age > 28) filters rows')Mendapatkan Satu Objek
session.scalars(stmt).first() mengembalikan hasil pertama atau None. one() mengharapkan tepat satu baris dan akan menimbulkan kesalahan jika jumlahnya berbeda.
from sqlalchemy import select
# stmt = select(User).where(User.name == 'Alice')
# user = session.scalars(stmt).first()
print('first() = first match or None')Mencari berdasarkan Kunci Utama
session.get(User, 1) adalah cara tercepat untuk mengambil satu objek berdasarkan kunci utamanya.
# user = session.get(User, 1)
# print(user.name)
print('session.get(Model, pk) fetches by id')Mengurutkan Hasil
Rangkaikan order_by() untuk mengurutkan data. Gunakan .desc() pada kolom untuk urutan menurun.
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')Memperbarui Objek
Ubah atribut pada objek yang telah dimuat, lalu jalankan commit(). Sesi mendeteksi perubahan tersebut dan mengeluarkan UPDATE.
# user = session.get(User, 1)
# user.name = 'Alicia'
# session.commit() # auto UPDATE
print('Edit attribute, then commit')Menghapus Objek
session.delete(obj) menandai objek untuk dihapus. Perintah DELETE dijalankan pada commit berikutnya.
# user = session.get(User, 1)
# session.delete(user)
# session.commit() # row removed
print('delete(obj) then commit removes the row')Pemeriksaan Singkat
Uji pengetahuan Anda tentang sesi.
Rangkuman
Anda telah mempelajari cara membaca dan mengubah data melalui Sesi.
Sessionmelacak unit kerja Andaadd()menyiapkan data, sedangkancommit()menyimpannya secara permanenselect()+scalars()membaca objek;where()memfilter datasession.get()mengambil data berdasarkan kunci utama; pengeditan dandelete()diterapkan saat commit
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Membuat Kueri dengan Session” gratis?
Ya — teks lengkap “Membuat Kueri dengan Session” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Python Academy, upgrade ke CoddyKit PRO. Kursus Python Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Membuat Kueri dengan Session”?
Baca dan saring data Kamu berlatih Python Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Python Academy?
Tidak diperlukan pengalaman sebelumnya. Python Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Membuat Kueri dengan Session” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Python Academy ini?
Ya. Setiap pelajaran Python Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- SQLAlchemy Core vs ORM
- Mendefinisikan Model
- Membuat Kueri dengan Session
- Relasi dan Join