Ngomongin Uang : Menjadi ‘Kaya’ Versi Kamu SendiriKekayaan sering kali bukan hanya soal uang atau status sosial. Kekayaan yang sesungguhnya bersifat sangat personal, karena setiap orang mendefinisikan kesuksesan dan kebahagiaannya dengan cara yang berbeda. Namun, apa pun definisi kekayaan bagi kamu, UANG adalah alat ukur dan kendaraan yang bisa membawamu mencapai tujuan. Karena itulah, memahami keuangan adalah hal yang fundamental dalam membangun kehidupan terbaik versi kamu. Free Klik Disini ! |
Pada tutorial sebelumnya kita telah belajar tentang konfigurasi router menggunakan librari APIRouter FastAPI Framework.
Di tutorial ini kita akan belajar bagaimana caranya membuat class koneksi database Mysql pada FastApi Framework.
Sebagaimana Flask Framework, FastApi juga mendukung implementasi SQLAlchemy.
SQLAlchemy merupakan SQL Toolkit dan ORM (object relational mapper) seperti halnya django model.
Sebelum melangkah lebih lanjut install terlebih dahulu SQLAlchemy menggunakan pip
pip install SQLAlchemy
db/database.py
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmakerSQLALCHEMY_DB_URL = "mysql+mysqldb://<username>:<password>@<host>/<database>"
engine = create_engine(SQLALCHEMY_DB_URL)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)Base = declarative_base()
db/base_class.py
from typing import Any
from sqlalchemy.ext.declarative import as_declarative, declared_attr@as_declarative()
class Base:
id: Any
__name__: str
# Generate __tablename__ automatically
@declared_attr
def __tablename__(cls) -> str:
return cls.__name__.lower()
Selanjutnya buat sebuah direktori dengan nama models, di tutorial ini saya sebuah table dengan nama customers dengan struktur data seperti dibawah ini:
CREATE TABLE `customers` (
`id` bigint NOT NULL AUTO_INCREMENT,
`customer_number` varchar(15) NOT NULL,
`name` varchar(255) NOT NULL,
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
)
Buat sebuah file dengan nama customers.py
models/customers.py
from sqlalchemy import Column, Integer, String, DateTime
from datetime import datetime
from db.base_class import Baseclass Customers(Base):
id = Column(Integer, primary_key=True, index=True)
customer_number = Column(String(255), index=True)
name = Column(String(255), index=True)
created_at = Column(DateTime(), default=datetime.now())
updated_at = Column(DateTime(), onupdate=datetime.now())
Agar lebih paham tentang bassic pengolahan data menggunakan FastApi dan Mysql, ikuti video tutorial dibawah ini
Github: https://github.com/halovina/fa-example/tree/fastapi-mysql