Asas ORM SQLAlchemy
Mulakan pembelajaran tentang Pemetaan Hubungan Objek (ORM) SQLAlchemy untuk mentakrifkan model pangkalan data dan berinteraksi dengan pangkalan data anda.
Asas ORM SQLAlchemy ialah pelajaran Kem Intensif Pembangunan Bahagian Belakang FastAPI percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Kem Intensif Pembangunan Bahagian Belakang FastAPI, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Kem Intensif Pembangunan Bahagian Belakang FastAPI merangkumi sejumlah 4 pelajaran.
Menghubungkan Kod dan Pangkalan Data
Selamat datang ke ORM SQLAlchemy! Anda akan mempelajari cara menyambungkan kod Python anda kepada pangkalan data dengan cara yang berkuasa dan berorientasikan objek.
Pemetaan Objek-Relasi (ORM) ialah alat yang membantu anda berinteraksi dengan pangkalan data menggunakan objek daripada bahasa pengaturcaraan anda, dan bukannya menulis SQL mentah.
- Ia memetakan jadual pangkalan data kepada kelas Python.
- Ia memetakan baris pangkalan data kepada objek Python.
- Ia memetakan lajur pangkalan data kepada atribut Python.
Ini menjadikan operasi pangkalan data terasa seperti bekerja dengan objek Python biasa.
Kenali SQLAlchemy: Alat ORM Anda
SQLAlchemy ialah ORM yang menyeluruh dan berkuasa untuk Python. Ia menyediakan rangkaian lengkap corak pengekalan yang terkenal untuk capaian pangkalan data yang cekap dan berprestasi tinggi.
Kita akan menumpukan pada keupayaan ORMnya, yang membolehkan anda mentakrifkan struktur pangkalan data (skema) menggunakan kelas Python dan berinteraksi dengan data menggunakan tika kelas tersebut.
Ia menyokong banyak pangkalan data, termasuk SQLite, PostgreSQL, MySQL dan banyak lagi!
Asasnya: Base Deklaratif
Untuk mula mentakrifkan model pangkalan data kita, kita memerlukan kelas asas khas. Base Deklaratif SQLAlchemy menyediakan asas ini.
Pada asasnya, ia ialah kilang yang menjana kelas asas yang akan diwarisi oleh model ORM anda. Kelas asas ini menghubungkan kelas Python anda kepada jadual pangkalan data yang berkaitan.
Berikut ialah cara mendapatkannya:
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()Mentakrifkan Model Pertama Anda
Setelah mempunyai Base, anda boleh mentakrifkan jadual pangkalan data sebagai kelas Python. Setiap kelas akan mewakili satu jadual, manakala atributnya akan mewakili lajur.
Mari cipta model User yang mudah. Model ini akan mempunyai id dan name.
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))Atribut Model: Lajur
Dalam model User kita, id dan name ditakrifkan menggunakan objek Column. Fungsi Column membolehkan anda menentukan butiran bagi setiap lajur pangkalan data:
- Jenis Data:
Integeruntuk nombor bulat,Stringuntuk teks. SQLAlchemy mempunyai banyak lagi jenis! - Kunci Utama:
primary_key=Truemenandakan lajur sebagai pengecam unik bagi setiap baris. - Panjang:
String(50)menetapkan panjang maksimum bagi medan teks. - Boleh Kosong: Secara lalai, lajur boleh mengandungi nilai kosong. Anda boleh menetapkan
nullable=Falseuntuk mewajibkan nilai.
Atribut __tablename__ amat penting; atribut ini memberitahu SQLAlchemy nama sebenar jadual dalam pangkalan data anda.
Menyediakan Enjin Pangkalan Data
Sebelum kita boleh mencipta jadual atau berinteraksi dengan pangkalan data, SQLAlchemy perlu mengetahui lokasinya! Di sinilah Enjin digunakan.
Enjin ialah titik permulaan bagi mana-mana aplikasi SQLAlchemy. Enjin menyambungkan aplikasi anda kepada pangkalan data tertentu menggunakan rentetan sambungan.
Untuk memudahkan penerangan, kita akan menggunakan pangkalan data SQLite dalam memori, yang amat sesuai untuk pengujian kerana ia hilang apabila program berakhir:
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')Mencipta Jadual Pangkalan Data
Dengan Base, model yang telah ditakrifkan dan engine, kita kini boleh mencipta jadual pangkalan data sebenar!
Kaedah Base.metadata.create_all(engine) memeriksa semua kelas yang mewarisi Base dan mencipta jadual yang sepadan dalam pangkalan data yang disambungkan oleh engine.
Jika jadual tersebut sudah wujud, SQLAlchemy tidak akan cuba menciptanya semula, sekali gus mengelakkan ralat.
Contoh Lengkap: Takrif & Cipta
Mari gabungkan semuanya! Jalankan kod ini untuk melihat cara mentakrifkan model dan mencipta jadualnya dalam pangkalan data SQLite dalam memori.
Perhatikan cara kita mengimport semua yang diperlukan, mentakrifkan Base, mencipta model User, menyediakan engine dan akhirnya mencipta jadual.
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.")Hab Interaksi Pangkalan Data Anda: Sesi
Mentakrifkan model dan mencipta jadual hanyalah langkah pertama. Untuk benar-benar berinteraksi dengan data (menambah, membuat pertanyaan, mengemas kini, memadam), anda memerlukan Sesi.
Sesi adalah seperti ruang kerja sementara untuk operasi pangkalan data anda. Sesi menyimpan semua objek yang telah anda muatkan atau cipta serta menjejaki perubahan.
Anda mencipta Sesi menggunakan sessionmaker dan mengikatnya kepada engine:
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()Semakan Pantas: Persediaan Model
Anda telah mempelajari cara menyediakan asas ORM SQLAlchemy. Mari uji pemahaman anda tentang komponen terasnya.
Imbas Kembali: Asas ORM SQLAlchemy
Syabas! Anda telah mengambil langkah pertama ke dunia SQLAlchemy ORM.
Inilah perkara yang telah kita pelajari:
- Apakah ORM: Memetakan objek Python kepada jadual pangkalan data.
- SQLAlchemy: ORM Python yang berkuasa.
- Asas Deklaratif: Asas (
Base = declarative_base()) untuk model anda. - Mendefinisikan Model: Mencipta kelas Python (seperti
User) yang mewarisi daripadaBase. - Lajur: Menggunakan
Columnbersama jenis data (Integer,String) dan atribut (primary_key). - Enjin: Menyambung kepada pangkalan data anda (
create_engine). - Penciptaan Jadual: Mengaktifkan model dalam pangkalan data (
Base.metadata.create_all(engine)). - Sesi: Ruang kerja anda untuk interaksi dengan pangkalan data (
sessionmaker).
Seterusnya, kita akan mempelajari cara menambah, membuat pertanyaan, mengemas kini dan memadam data menggunakan konsep-konsep ini!
Pelajari Kem Intensif Pembangunan Bahagian Belakang FastAPI dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 21
- Pelajaran
- 84
Soalan Lazim
Adakah pelajaran “Asas ORM SQLAlchemy” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Kem Intensif Pembangunan Bahagian Belakang FastAPI, termasuk “Asas ORM SQLAlchemy”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Kem Intensif Pembangunan Bahagian Belakang FastAPI merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Asas ORM SQLAlchemy”?
Mulakan pembelajaran tentang Pemetaan Hubungan Objek (ORM) SQLAlchemy untuk mentakrifkan model pangkalan data dan berinteraksi dengan pangkalan data anda. Anda berlatih Kem Intensif Pembangunan Bahagian Belakang FastAPI menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Kem Intensif Pembangunan Bahagian Belakang FastAPI?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Kem Intensif Pembangunan Bahagian Belakang FastAPI di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.
Berapa lamakah pelajaran “Asas ORM SQLAlchemy” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Kem Intensif Pembangunan Bahagian Belakang FastAPI ini?
Ya. Setiap pelajaran Kem Intensif Pembangunan Bahagian Belakang FastAPI menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Asas ORM SQLAlchemy
- Menyambungkan FastAPI kepada PostgreSQL
- Operasi CRUD dengan SQLAlchemy
- Migrasi Pangkalan Data dengan Alembic