Drone Kamera Jarak Jauh Fotografi Udararesolusi kamera 4K, sehingga gambar lebih tajam, dan gambar dapat di lihat dengan jelas. dapat berputar 360°, aplikasi wificam, drone dapat di pantau dari handphone, Terbang dengan ketinggian 50m, jarak kontrol maksimum 1000m. Waktu penerbangan 30 menit, waktu pengisian daya 60 menit. 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