FastAPIとSQLAlchemyのインストール
FastAPIとSQLAlchemyをインストールするには、Pythonのパッケージ管理ツールであるpipを使用します。以下のコマンドを実行してください。
pip install fastapi
pip install sqlalchemy
これらのコマンドは、それぞれFastAPIとSQLAlchemyをインストールします。FastAPIは、モダンで、高速(高性能)で、Webフレームワークで、Python 3.6以降で使用することができます。SQLAlchemyは、Python SQLツールキットとORMで、SQLの力と柔軟性を提供し、Pythonicなスタイルで使用することができます。
次に、FastAPIアプリケーションを作成し、SQLAlchemyを使用してデータベースとの接続を設定します。これにより、データベースからデータを読み取る準備が整います。具体的なコードの書き方については、次のセクションで詳しく説明します。
データベース処理の作成
FastAPIとSQLAlchemyを使用してデータベース処理を作成するには、まずデータベースとの接続を設定する必要があります。以下にその手順を示します。
- データベースエンジンの作成: SQLAlchemyは、データベースエンジンを作成することでデータベースとの接続を管理します。以下のコードは、SQLiteデータベースとの接続を作成します。
from sqlalchemy import create_engine
engine = create_engine('sqlite:///example.db')
- セッションの作成: SQLAlchemyは、データベースとのすべての対話をセッションを通じて行います。以下のコードは、セッションファクトリを作成し、その後セッションを作成します。
from sqlalchemy.orm import sessionmaker
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
# これは新しいセッションを作成します
session = SessionLocal()
- データベース操作: セッションを使用して、データベースに対する操作(CRUD操作)を行います。以下のコードは、新しいユーザーを作成し、それをデータベースに追加します。
from models import User
new_user = User(email='[email protected]', hashed_password='hashed_password')
session.add(new_user)
session.commit()
以上の手順で、FastAPIとSQLAlchemyを使用してデータベース処理を作成することができます。次のセクションでは、具体的なモデルの作成方法について説明します。
モデルの作成
SQLAlchemyを使用してデータベースモデルを作成するには、以下の手順を実行します。
- Baseクラスの作成: SQLAlchemyは、すべてのモデルが継承するBaseクラスを提供します。これは、データベースとモデル間のマッピングを管理します。
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
- モデルクラスの作成: データベーステーブルを表すクラスを作成します。このクラスはBaseクラスを継承し、テーブルの各列はクラスの属性として定義されます。
from sqlalchemy import Column, Integer, String
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True, index=True)
email = Column(String, unique=True, index=True)
hashed_password = Column(String)
このコードは、users
という名前のテーブルを作成します。このテーブルには、id
、email
、hashed_password
の3つの列があります。id
列は主キーであり、email
列は一意である必要があります。
- テーブルの作成: 最後に、Baseクラスの
metadata.create_all
メソッドを使用して、定義したすべてのテーブルをデータベースに作成します。
Base.metadata.create_all(bind=engine)
以上の手順で、FastAPIとSQLAlchemyを使用してデータベースモデルを作成することができます。次のセクションでは、具体的なCRUD操作の実装方法について説明します。
CRUD操作の実装
FastAPIとSQLAlchemyを使用してCRUD(Create、Read、Update、Delete)操作を実装するには、以下の手順を実行します。
- Create(作成): SQLAlchemyの
add
メソッドを使用して、新しいレコードをデータベースに追加します。その後、commit
メソッドを使用して変更を保存します。
new_user = User(email='[email protected]', hashed_password='hashed_password')
session.add(new_user)
session.commit()
- Read(読み取り): SQLAlchemyの
query
メソッドを使用して、データベースからレコードを読み取ります。以下のコードは、すべてのユーザーを取得します。
users = session.query(User).all()
- Update(更新): SQLAlchemyの
query
メソッドを使用して、更新するレコードを見つけます。その後、属性を更新し、commit
メソッドを使用して変更を保存します。
user = session.query(User).filter(User.email == '[email protected]').first()
user.hashed_password = 'new_hashed_password'
session.commit()
- Delete(削除): SQLAlchemyの
delete
メソッドを使用して、レコードをデータベースから削除します。その後、commit
メソッドを使用して変更を保存します。
user = session.query(User).filter(User.email == '[email protected]').first()
session.delete(user)
session.commit()
以上の手順で、FastAPIとSQLAlchemyを使用してCRUD操作を実装することができます。これらの操作を適切に使用することで、データベースからのデータの読み取り、書き込み、更新、削除を行うことができます。これらの操作は、Webアプリケーションの基本的な機能を提供します。次のセクションでは、具体的なAPIエンドポイントの作成方法について説明します。このエンドポイントは、これらのCRUD操作をクライアントからアクセス可能にします。具体的なコードの書き方については、次のセクションで詳しく説明します。