データベース

FastAPIとSQLAlchemyのやさしい使い方ガイド

FastAPIとSQLAlchemyってなに?

ナカイ君: FastAPIとSQLAlchemyの使い方をわかりやすく教えてほしいな。

世界のアオキ: OK、まず「FastAPI」は、WebアプリやAPIを作るためのモダンで高速なフレームワークだよ。「SQLAlchemy」は、データベースをPythonのコードで扱えるようにするライブラリだね。

これらを組み合わせると、効率的にデータベース操作ができるWebアプリを作れるんだ。

ナカイ君: もっと具体的に教えてくれない?

世界のアオキ: もちろんだよ。FastAPIでAPIを作り、SQLAlchemyを使ってデータベースからデータを取得したり、データを保存したりできる。この組み合わせは、Web開発において強力で、コードもシンプルになるんだ。

基本的なコードの書き方

ナカイ君: わかりやすいコードがあれば教えてほしいな。

世界のアオキ: まずは簡単なFastAPIアプリと、SQLAlchemyでのデータベースモデルの定義から始めよう。

from fastapi import FastAPI
from sqlalchemy import Column, Integer, String, create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

app = FastAPI()
Base = declarative_base()

# データベース接続の設定
DATABASE_URL = "sqlite:///./test.db"
engine = create_engine(DATABASE_URL)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)

# モデルの定義
class User(Base):
    __tablename__ = "users"
    id = Column(Integer, primary_key=True, index=True)
    name = Column(String, index=True)

# データベースのテーブルを作成
Base.metadata.create_all(bind=engine)





FastAPIでのデータ操作

ナカイ君: 具体的にはどうやって使うの?

世界のアオキ: こうやってデータを追加したり、取得したりするんだよ。例えば、ユーザーを追加するAPIと、ユーザーのリストを取得するAPIはこんな感じ。

from fastapi import Depends, HTTPException
from sqlalchemy.orm import Session

# 依存関係
def get_db():
    db = SessionLocal()
    try:
        yield db
    finally:
        db.close()

@app.post("/users/")
def create_user(name: str, db: Session = Depends(get_db)):
    db_user = User(name=name)
    db.add(db_user)
    db.commit()
    db.refresh(db_user)
    return db_user

@app.get("/users/")
def read_users(skip: int = 0, limit: int = 10, db: Session = Depends(get_db)):
    users = db.query(User).offset(skip).limit(limit).all()
    return users





ナカイ君: 他のパターンがあれば教えてほしいな。

世界のアオキ: 他にも、ユーザーをIDで検索するAPIを作ることができるよ。それはこんな感じになる。

@app.get("/users/{user_id}")
def read_user(user_id: int, db: Session = Depends(get_db)):
    db_user = db.query(User).filter(User.id == user_id).first()
    if db_user is None:
        raise HTTPException(status_code=404, detail="User not found")
    return db_user

ナカイ君: そうやって使えばいいんだね。

世界のアオキ: そうだね。ただ、実際に使うときは、データベースの設定やモデルの定義に注意する必要があるよ。そして、SQLAlchemyのセッション管理も大切だからね。しっかりとドキュメントを読んで、理解を深めていこう。

ナカイ君: わかった、ありがとう!

まとめ

FastAPIとSQLAlchemyを使うことで、Pythonで効率的にWebアプリやAPIを作ることができるようになる。この記事では、FastAPIでの基本的なAPIの作り方と、SQLAlchemyでのデータベース操作の方法を紹介した。

コードの例を参考にしながら、自分のプロジェクトに応用してみるといい。最初はシンプルな操作から始めて、徐々に複雑な機能を追加していくことをおすすめするよ。

ドキュメントをよく読み、FastAPIとSQLAlchemyの機能を最大限に活用してみてね。

created by Rinker
¥3,400 (2025/04/02 12:19:27時点 Amazon調べ-詳細)

関連記事一覧 (一部広告あり)

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA


最近の記事

アーカイブ

  1. オンライン教材

    ChatGPTをビジネス活用する講座をリリースしました【Udemy】
  2. オンライン教材

    【AWS】【初心者向け】インフラの基礎からわかる講座をリリースしました【Udem…
  3. データベース

    MySQLの講座をリリースしました
  4. オンライン教材

    【ChatGPT】エンジニア編をリリースしました
  5. 生成AI

    Dify講座をリリースしました【非エンジニア向け】
PAGE TOP
Ads Blocker Image Powered by Code Help Pro

広告ブロックを摘出しました!!

ブラウザ拡張を使用して広告をブロックしていることが摘出されました。

ブラウザの広告ブロッカーの機能を無効にするか、
当サイトのドメインをホワイトリストに追加し、「更新」をクリックして下さい。

あなたが広告をブロックする権利があるように、
当方も広告をブロックしている人にコンテンツを提供しない権利と自由があります。

Powered By
Best Wordpress Adblock Detecting Plugin | CHP Adblock