Rumah >pembangunan bahagian belakang >Tutorial Python >Cara menggunakan perpustakaan ORM untuk manipulasi data dalam FastAPI
Cara menggunakan perpustakaan ORM untuk operasi data dalam FastAPI
Pengenalan:
FastAPI ialah rangka kerja web moden berdasarkan Python Reka bentuknya diilhamkan oleh Starlette dan Pydantic Ia adalah rangka kerja berprestasi tinggi, terutamanya sesuai untuk membina pantas. Perkhidmatan RESTful API boleh skala dan berprestasi. Dalam FastAPI, dengan bantuan perpustakaan ORM (Object Relational Mapping), kami boleh melaksanakan operasi pangkalan data dengan lebih mudah. Artikel ini akan membimbing anda cara menggunakan perpustakaan ORM untuk manipulasi data dalam FastAPI dan memberikan beberapa contoh kod.
1. Pengenalan kepada perpustakaan ORM
ORM (Pemetaan Perhubungan Objek) ialah teknologi yang memetakan data dalam pangkalan data kepada objek. Pustaka ORM membenarkan pembangun mengendalikan pangkalan data dengan mentakrifkan model objek tanpa terus menulis pernyataan SQL. Dalam FastAPI, perpustakaan ORM yang biasa digunakan termasuk SQLAlchemy, Peewee, dsb. Artikel ini menggunakan SQLAlchemy sebagai contoh untuk menggambarkan.
2. Pasang dan konfigurasikan SQLAlchemy
Sebelum menggunakan SQLAlchemy, kita perlu memasang perpustakaan SQLAlchemy terlebih dahulu. Ia boleh dipasang melalui arahan berikut:
pip install sqlalchemy
Selepas pemasangan selesai, kita perlu menetapkan konfigurasi sambungan pangkalan data. Dalam FastAPI, anda boleh menambah kod berikut pada fail main.py:
from sqlalchemy import create_engine from sqlalchemy.orm import declarative_base, sessionmaker SQLALCHEMY_DATABASE_URL = "sqlite:///./test.db" engine = create_engine(SQLALCHEMY_DATABASE_URL) SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) Base = declarative_base()
Dalam kod di atas, kami mencipta pangkalan data SQLite dan menentukan SessionLocal untuk mencipta sesi pangkalan data. SQLALCHEMY_DATABASE_URL ialah URL sambungan pangkalan data.
3. Tentukan model data
Sebelum menggunakan ORM untuk operasi data, kita perlu menentukan model data. Model data boleh ditakrifkan dalam fail models.py. Ambil contoh model pengguna sebagai contoh. Dalam model data, kita boleh menentukan jenis setiap medan, dsb.
4. Cipta jadual data
Sebelum menggunakan ORM untuk operasi data, kita perlu mencipta jadual pangkalan data yang sepadan. Anda boleh menambah kod berikut pada fail main.py:from sqlalchemy import Column, Integer, String from database import Base class User(Base): __tablename__ = "users" id = Column(Integer, primary_key=True, index=True) name = Column(String(50), unique=True, index=True) email = Column(String(50), unique=True, index=True) password = Column(String(100))
5. Contoh operasi data
Mengambil model pengguna sebagai contoh, kami akan memberikan beberapa contoh operasi data biasa.Base.metadata.create_all(bind=engine)
Dalam kod di atas, kami menanyakan semua data pengguna dan mengembalikannya.
from sqlalchemy.orm import Session from . import models def get_users(db: Session): return db.query(models.User).all()
Dalam kod di atas, kami menanyakan data pengguna tunggal mengikut id pengguna dan mengembalikannya.
from sqlalchemy.orm import Session from . import models def get_user_by_id(db: Session, user_id: int): return db.query(models.User).filter(models.User.id == user_id).first()
Dalam kod di atas, kami menyimpan data pengguna yang masuk ke pangkalan data dan mengembalikannya.
from sqlalchemy.orm import Session from . import models, schemas def create_user(db: Session, user: schemas.UserCreate): hashed_password = hashlib.sha256(user.password.encode()).hexdigest() db_user = models.User(name=user.name, email=user.email, password=hashed_password) db.add(db_user) db.commit() db.refresh(db_user) return db_user
Dalam kod di atas, kami menyimpan data kemas kini yang masuk ke pangkalan data melalui id pengguna.
from sqlalchemy.orm import Session from . import models, schemas def update_user(db: Session, user_id: int, user: schemas.UserUpdate): db_user = db.query(models.User).filter(models.User.id == user_id).first() if user.name: db_user.name = user.name if user.email: db_user.email = user.email if user.password: db_user.password = hashlib.sha256(user.password.encode()).hexdigest() db.commit() db.refresh(db_user) return db_user
Dalam kod di atas, kami memadam data pengguna daripada pangkalan data mengikut id pengguna.
Atas ialah kandungan terperinci Cara menggunakan perpustakaan ORM untuk manipulasi data dalam FastAPI. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!