Koneksi Database Mysql Pada FastAPI Framework

Subscribe Dengan Account Google Untuk Membaca Artikel Tanpa Iklan !
Koneksi Database Mysql Pada FastAPI Framework
ADVAN Laptop Notebook i3 Gen

ADVAN Laptop Notebook i3 Gen

ADVAN Laptop Notebook Soulmate 14 inch FHD IPS INTEL i3 8GB+256GB WINDOWS 11 Original. ADVAN kembali menghadirkan produk laptop di Indonesia yang ditenagai oleh Otak INTEL i3 Gen 11 untuk Para Mahasiswa, pekerja, conten creator, editing foto dan video dengan design yang sangat Modern.

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 :