Drone Lipat Camera 4K HD XT9 double Camera"Drone XT9 ". Merupakan drone dengan desain yang futuristik serta elegan. Drone ini memiliki beberapa fungsi serta keunggulan seperti : battery 1800mAH(bisa bertahan +/- 15 menit), Camera 4 pixels + double camera (multi angel view) dan bahan yang kokoh serta solid. 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