Koneksi Database Mysql Pada FastAPI Framework

Subscribe dengan Account Google untuk mendapatkan News Letter terbaru dari Halovina !
Koneksi Database Mysql Pada FastAPI Framework
Apa 10 Ltr Air Cooler 1200cmh - Putih

Apa 10 Ltr Air Cooler 1200cmh - Putih

Hadirkan kesejukan di ruangan Anda dengan air cooler dari APA. Penyejuk udara ini dilengkapi dengan kapasitas kontainer air sebesar 10 liter yang ideal untuk kebutuhan harian keluarga Anda. 3 pilihan kecepatan kipas dapat Anda pilih dengan mudah, lengkap dengan 4 pilihan mode yaitu ionizer, humidifier, swing, atau cool sesuai dengan kebutuhan Anda. Pilihan timer dapat mempermudah Anda mengatur jadwal operasi dari alat ini.

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 :