Koneksi Database Mysql Pada FastAPI Framework

Subscribe dengan Account Google untuk mendapatkan News Letter terbaru dari Halovina !
Koneksi Database Mysql Pada FastAPI Framework
Drone Aquila16 FPV Kit LiteRadio

Drone Aquila16 FPV Kit LiteRadio

Waktu Penerbangan (4.35V-3.4V) : 8 menit. Bahan Bingkai : Hitam PA12. Googles : FPV VR03. Motor : 1102|18000KV. Berat : 2000 gram

Free Klik Disini !

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 :