【SQLAlchemy】MariaDBに接続する

2022/08/02に公開

必要なものインストール

Pythonの仮想環境に入る

pip install SQLAlchemy
pip install mysql-connector-python
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.schema import Column
from sqlalchemy.types import Integer, String
from fastapi import FastAPI, Depends, HTTPException
import mysql.connector
from dotenv import load_dotenv


USER = 'root'
PASSWORD = '0123'
HOST = '127.0.0.1'
DATABASE = 'db_test'


engine = create_engine(f'mysql+mysqlconnector://{USER}:{PASSWORD}@{HOST}/{DATABASE}')

# テーブルを定義する
Base = declarative_base()
class Animal(Base):
    __tablename__ = 'animals'
    __table_args__ = ({"mysql_charset": "utf8mb4"})
    id = Column(Integer, primary_key=True, autoincrement=True)
    name = Column(String(30), nullable=False)

# テーブルを作成する
Base.metadata.create_all(engine)

# セッションを作成する
Session = sessionmaker(engine)
session = Session()

# データを追加する
cat = Animal(name='cat')
dog = Animal(name='dog')
session.add(cat)
session.add(dog)
session.commit()

# データを更新する
cat = session.query(Animal).get(1)
cat.name = 'pengin'
session.commit()

# データを取得する
animals = session.query(Animal).all()
for animal in animals:
    print('id=',animal.id,'name=',animal.name)

app = FastAPI()


@app.get("/")
def say_hello():
    return {"Hello": "World"}

参考:https://www.gesource.jp/weblog/?p=8545

Discussion