Koneksi Database Mysql Pada FastAPI Framework

Subscribe Dengan Account Google Untuk Membaca Artikel Tanpa Iklan
Koneksi Database Mysql Pada FastAPI Framework

Di tutorial ini kita akan belajar cara membuat koneksi database pada FastAPI Framework menggunakan database MYSQL.

Pastikan Anda telah berada pada mode python virtual environment. Ikuti langkah-langkah berikut:

1) Install Dependencies


pip install fastapi
pip install sqlalchemy
pip install pymysql

2) Create Database Connection Function

from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

SQLALCHEMY_DATABASE_URL = "mysql+pymysql://admin:admin@localhost:3306/fastapi"
engine = create_engine(SQLALCHEMY_DATABASE_URL)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)

Base = declarative_base()

def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()

3) Create File Models

from db_config import Base
from sqlalchemy import Column, Integer, String

class Users(Base):
__tablename__ = 'users'

id = Column(Integer, primary_key=True)
username = Column(String, unique=True, index=True)
email = Column(String, unique=True, index=True)

4) Integrasi dengan FastAPI Routes

from fastapi import FastAPI, Depends
from db_config import get_db
from models import Users
from sqlalchemy.orm import Session

app = FastAPI()

@app.get("/")
def read_root():
return {"Hello": "World"}

@app.get("/users")
def get_all_users(db: Session=Depends(get_db)):
users = db.query(Users).all()
return users

5) Pertimbangan Tambahan


 

  • Error handling: Menerapkan mekanisme penanganan kesalahan yang tepat untuk menangkap potensi pengecualian selama interaksi database dan mengembalikan kode status HTTP yang sesuai.

  • Scurity: Jangan pernah menyimpan kredensial database sensitif langsung di kode Anda. Pertimbangkan untuk menggunakan variabel environtment atau sistem manajemen konfigurasi yang aman.

  • Advanced feature: Jelajahi kemampuan SQLAlchemy untuk kueri kompleks, hubungan antar model, dan operasi database tingkat lanjut lainnya.

  • Dependency injection: Contoh ini menunjukkan injeksi ketergantungan eksplisit dengan Depends decorator. Anda juga dapat memanfaatkan framework  seperti Dependency Injector untuk skenario yang lebih kompleks.


6) Video Tutorial

Baca artikel lainya :