ホームページ バックエンド開発 Python チュートリアル FastAPI でのデータ操作に ORM ライブラリを使用する方法

FastAPI でのデータ操作に ORM ライブラリを使用する方法

Jul 30, 2023 pm 05:00 PM
fastapi orm データ操作

FastAPI でのデータ操作に ORM ライブラリを使用する方法

はじめに:
FastAPI は、Python をベースにした最新の Web フレームワークであり、その設計は Starlette と Pydantic からインスピレーションを受けており、高パフォーマンスのフレームワークです. 、高速でスケーラブルで高性能な RESTful API サービスを構築するのに特に適しています。 FastAPI では、ORM (オブジェクト リレーショナル マッピング) ライブラリの助けを借りて、データベース操作をより便利に実行できます。この記事では、FastAPI でのデータ操作に ORM ライブラリを使用する方法を説明し、いくつかのコード例を示します。

1. ORM ライブラリの紹介
ORM (Object Relational Mapping) は、データベース内のデータをオブジェクトにマッピングするテクノロジーです。 ORM ライブラリを使用すると、開発者は SQL ステートメントを直接記述せずにオブジェクト モデルを定義することでデータベースを操作できます。 FastAPI で一般的に使用される ORM ライブラリには、SQLAlchemy、Peeweee などが含まれます。この記事では、SQLAlchemy を例として使用して説明します。

2. SQLAlchemy のインストールと設定
SQLAlchemy を使用する前に、まず SQLAlchemy ライブラリをインストールする必要があります。次のコマンドを使用してインストールできます。

pip install sqlalchemy
ログイン後にコピー

インストールが完了したら、データベースの接続構成を設定する必要があります。 FastAPI では、次のコードを main.py ファイルに追加できます。

from sqlalchemy import create_engine
from sqlalchemy.orm import declarative_base, sessionmaker

SQLALCHEMY_DATABASE_URL = "sqlite:///./test.db"
engine = create_engine(SQLALCHEMY_DATABASE_URL)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)

Base = declarative_base()
ログイン後にコピー

上記のコードでは、SQLite データベースを作成し、データベース セッションを作成するための SessionLocal を定義しました。 SQLALCHEMY_DATABASE_URL はデータベース接続の URL です。

3. データ モデルの定義
データ操作に ORM を使用する前に、データ モデルを定義する必要があります。データ モデルは、models.py ファイルで定義できます。サンプルのユーザー モデルを例として挙げます。例は次のとおりです:

from sqlalchemy import Column, Integer, String
from database import Base

class User(Base):
    __tablename__ = "users"

    id = Column(Integer, primary_key=True, index=True)
    name = Column(String(50), unique=True, index=True)
    email = Column(String(50), unique=True, index=True)
    password = Column(String(100))
ログイン後にコピー

上記のコードでは、User という名前のデータ モデルを定義し、データ テーブル名 "users" を指定します。データモデルでは、各フィールドの型などを定義できます。

4. データ テーブルの作成
データ操作に ORM を使用する前に、対応するデータベース テーブルを作成する必要があります。次のコードを main.py ファイルに追加できます。

Base.metadata.create_all(bind=engine)
ログイン後にコピー

上記のコードは、データベース内に定義されたすべてのデータ モデルに対応するテーブルを作成します。

5. データ操作の例
ユーザー モデルを例として、一般的なデータ操作の例をいくつか示します。

  1. すべてのユーザーのクエリ

    from sqlalchemy.orm import Session
    from . import models
    
    def get_users(db: Session):
     return db.query(models.User).all()
    ログイン後にコピー

    上記のコードでは、すべてのユーザー データをクエリして返します。

  2. 単一ユーザーのクエリ

    from sqlalchemy.orm import Session
    from . import models
    
    def get_user_by_id(db: Session, user_id: int):
     return db.query(models.User).filter(models.User.id == user_id).first()
    ログイン後にコピー

    上記のコードでは、ユーザー ID によって単一ユーザーのデータをクエリし、それを返します。

  3. ユーザーの作成

    from sqlalchemy.orm import Session
    from . import models, schemas
    
    def create_user(db: Session, user: schemas.UserCreate):
     hashed_password = hashlib.sha256(user.password.encode()).hexdigest()
     db_user = models.User(name=user.name, email=user.email, password=hashed_password)
     db.add(db_user)
     db.commit()
     db.refresh(db_user)
     return db_user
    ログイン後にコピー

    上記のコードでは、受信したユーザー データをデータベースに保存して返します。

  4. Update user

    from sqlalchemy.orm import Session
    from . import models, schemas
    
    def update_user(db: Session, user_id: int, user: schemas.UserUpdate):
     db_user = db.query(models.User).filter(models.User.id == user_id).first()
     if user.name:
         db_user.name = user.name
     if user.email:
         db_user.email = user.email
     if user.password:
         db_user.password = hashlib.sha256(user.password.encode()).hexdigest()
     db.commit()
     db.refresh(db_user)
     return db_user
    ログイン後にコピー

    上記のコードでは、受信した更新データをユーザー ID を介してデータベースに保存します。

  5. ユーザーの削除

    from sqlalchemy.orm import Session
    from . import models
    
    def delete_user(db: Session, user_id: int):
     db_user = db.query(models.User).filter(models.User.id == user_id).first()
     db.delete(db_user)
     db.commit()
     return {'message': f"User {user_id} deleted successfully"}
    ログイン後にコピー

    上記のコードでは、ユーザー ID によってデータベースからユーザー データを削除します。

    結論:
    上記のコード例を通じて、FastAPI でのデータ操作に ORM ライブラリを使用するのが比較的簡単であることがわかります。 ORM ライブラリを利用すると、SQL ステートメントを直接記述する必要がなく、オブジェクト モデルを通じてデータベース操作を実行できるため、コードがより簡潔で読みやすくなります。この記事が、FastAPI プロジェクトでのデータ操作に ORM ライブラリを使用するのに役立つことを願っています。

    以上がFastAPI でのデータ操作に ORM ライブラリを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

リバース プロキシとロード バランシングのために FastAPI で Nginx を使用する方法 リバース プロキシとロード バランシングのために FastAPI で Nginx を使用する方法 Aug 01, 2023 am 09:44 AM

リバース プロキシとロード バランシングのために FastAPI で Nginx を使用する方法 はじめに: FastAPI と Nginx は 2 つの非常に人気のある Web 開発ツールです。 FastAPI は高性能 Python フレームワークであり、Nginx は強力なリバース プロキシ サーバーです。これら 2 つのツールを一緒に使用すると、Web アプリケーションのパフォーマンスと信頼性が向上します。この記事では、リバース プロキシと負荷分散のために FastAPI で Nginx を使用する方法を学びます。逆生成とは何ですか

FastAPI でリクエストの高い同時実行性と負荷分散を実現する方法 FastAPI でリクエストの高い同時実行性と負荷分散を実現する方法 Jul 31, 2023 pm 01:50 PM

FastAPI でリクエストの高い同時実行性と負荷分散を実現する方法 はじめに: インターネットの発展に伴い、Web アプリケーションの高い同時性が一般的な問題になりました。大量のリクエストを処理するときは、効率的なフレームワークとテクノロジーを使用して、システムのパフォーマンスとスケーラビリティを確保する必要があります。 FastAPI は、高い同時実行性と負荷分散の実現に役立つ高性能 Python フレームワークです。この記事では、FastAPI を使用してリクエストの高い同時実行性と負荷分散を実現する方法を紹介します。 Python3.7を使用します

FastAPIでデータベース接続とトランザクション処理を実装する方法 FastAPIでデータベース接続とトランザクション処理を実装する方法 Jul 30, 2023 am 11:45 AM

FastAPI でデータベース接続とトランザクション処理を実装する方法 はじめに: Web アプリケーションの急速な開発に伴い、データベース接続とトランザクション処理が非常に重要なトピックになっています。 FastAPI は、その速度と使いやすさで開発者に愛されている高性能 Python Web フレームワークです。この記事では、信頼性が高く効率的な Web アプリケーションを構築するために役立つ、FastAPI でデータベース接続とトランザクションを実装する方法を紹介します。パート 1: FastA でのデータベース接続

Swagger UI を使用して FastAPI で API ドキュメントを表示する方法 Swagger UI を使用して FastAPI で API ドキュメントを表示する方法 Jul 30, 2023 am 10:45 AM

SwaggerUI を使用して FastAPI で API ドキュメントを表示する方法 はじめに: 最新の Web 開発において、API は不可欠な部分です。開発とメンテナンスを容易にするために、他の開発者が API を理解して使用できるように、フレンドリーで使いやすい API ドキュメントを提供する必要があります。 Swagger は、API の詳細を視覚的に表示できる対話型 UI インターフェイスを提供する、一般的な API ドキュメント形式およびツールです。この記事ではFasの使い方を紹介します。

FastAPI フレームワークを使用して国際的な Web アプリケーションを構築する FastAPI フレームワークを使用して国際的な Web アプリケーションを構築する Sep 29, 2023 pm 03:53 PM

FastAPI フレームワークを使用して国際的な Web アプリケーションを構築します。FastAPI は、Python 型の注釈と高性能の非同期サポートを組み合わせた高性能 Python Web フレームワークで、Web アプリケーションの開発をよりシンプル、高速、信頼性の高いものにします。国際的な Web アプリケーションを構築する場合、FastAPI は、アプリケーションで複数の言語を簡単にサポートできるようにする便利なツールと概念を提供します。以下に、FastAPI フレームワークを使用してビルドする方法を紹介する具体的なコード例を示します。

FastAPI でリクエストのロギングとモニタリングを実装する方法 FastAPI でリクエストのロギングとモニタリングを実装する方法 Jul 30, 2023 am 08:29 AM

FastAPI でリクエストのログ記録とモニタリングを実装する方法 はじめに: FastAPI は、Python3.7 以降をベースとした高性能 Web フレームワークであり、自動化されたリクエストとレスポンス モデルの検証、セキュリティ、パフォーマンスの最適化など、多くの強力な機能と特徴を提供します。実際の開発では、デバッグや監視分析のためにアプリケーションにリクエストのログを記録する必要があることがよくあります。この記事では、FastAPI でリクエストのログ記録と監視を実装する方法を紹介し、対応するコード例を示します。 1. インストール

FastAPI での非同期タスク処理にメッセージ キューを使用する方法 FastAPI での非同期タスク処理にメッセージ キューを使用する方法 Jul 30, 2023 pm 09:21 PM

FastAPI での非同期タスク処理にメッセージ キューを使用する方法 はじめに: Web アプリケーションでは、電子メールの送信やレポートの生成など、時間のかかるタスクを処理する必要があることがよくあります。これらのタスクが同期の要求と応答のプロセスに配置されると、ユーザーは長時間待機する必要があり、ユーザー エクスペリエンスとサーバーの応答速度が低下します。この問題を解決するには、非同期タスク処理にメッセージ キューを使用します。この記事では、メッセージ キューを使用して FastAPI フレームワークで非同期タスクを処理する方法を紹介します。

Flask vs FastAPI: 効率的な Web API 開発のための最良の選択 Flask vs FastAPI: 効率的な Web API 開発のための最良の選択 Sep 27, 2023 pm 09:01 PM

FlaskvsFastAPI: WebAPI の効率的な開発のための最良の選択 はじめに: 現代のソフトウェア開発において、WebAPI は不可欠な部分になっています。これらは、異なるアプリケーション間の通信と相互運用性を可能にするデータとサービスを提供します。 WebAPI を開発するためのフレームワークを選択する場合、Flask と FastAPI の 2 つの選択肢が大きな注目を集めています。どちらのフレームワークも非常に人気があり、それぞれに独自の利点があります。この記事ではフロリダ州について見ていきます。

See all articles