首頁 後端開發 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庫進行資料操作,並提供一些程式碼範例。

一、ORM庫簡介
ORM(物件關聯映射)是一種將資料庫中的資料映射為物件的技術。 ORM函式庫能夠讓開發者透過定義物件模型來操作資料庫,而不用直接編寫SQL語句。在FastAPI中,常用的ORM函式庫有SQLAlchemy、Peewee等。本文以SQLAlchemy為例進行說明。

二、安裝和設定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。

三、定義資料模型
在使用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"。在資料模型中,我們可以定義各個欄位的類型等。

四、建立資料表
在使用ORM進行資料操作之前,我們需要建立對應的資料庫表。可以在main.py檔案中加入以下程式碼:

Base.metadata.create_all(bind=engine)
登入後複製

上述程式碼將在資料庫中建立所有定義的資料模型對應的表。

五、資料操作範例
以使用者模型為例,我們將給出一些常見的資料操作範例。

  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. 更新使用者

    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中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1426
52
Laravel 教程
1328
25
PHP教程
1273
29
C# 教程
1253
24
如何在FastAPI中使用Nginx進行反向代理程式和負載平衡 如何在FastAPI中使用Nginx進行反向代理程式和負載平衡 Aug 01, 2023 am 09:44 AM

如何在FastAPI中使用Nginx進行反向代理程式和負載平衡引言:FastAPI和Nginx是兩個非常受歡迎的Web開發工具。 FastAPI是一個高效能的Python框架,而Nginx則是一個強大的反向代理伺服器。結合這兩個工具,可以提高Web應用程式的效能和可靠性。在本文中,我們將學習如何在FastAPI中使用Nginx進行反向代理和負載平衡。什麼是反向代

如何在FastAPI中實現請求的高並發與負載平衡 如何在FastAPI中實現請求的高並發與負載平衡 Jul 31, 2023 pm 01:50 PM

如何在FastAPI中實現請求的高並發和負載平衡引言:隨著互聯網的發展,Web應用程式的高並發成為一個常見的問題。在處理大量請求時,我們需要使用高效的框架和技術來確保系統的效能和可擴展性。 FastAPI是一個高效能的Python框架,可以幫助我們實現高並發和負載平衡。本文將介紹如何利用FastAPI來實現請求的高並發與負載平衡。我們將使用Python3.7

使用FastAPI框架建構國際化的Web應用 使用FastAPI框架建構國際化的Web應用 Sep 29, 2023 pm 03:53 PM

使用FastAPI框架建立國際化的Web應用FastAPI是一個高效能的PythonWeb框架,它結合了Python類型註解和效能較好的非同步支持,使得開發Web應用變得更加簡單、快速和可靠。在建構一個國際化的網路應用程式時,FastAPI提供了方便的工具和理念,讓應用程式能夠輕鬆支援多種語言。下面我將給一個具體的程式碼範例,介紹如何使用FastAPI框架構

如何在FastAPI中使用Swagger UI展示API文檔 如何在FastAPI中使用Swagger UI展示API文檔 Jul 30, 2023 am 10:45 AM

如何在FastAPI中使用SwaggerUI展示API文件導言:在現代Web開發中,API是不可或缺的一部分。為了方便開發和維護,我們需要提供一個友好且易於使用的API文檔,以便其他開發人員可以了解和使用我們的API。 Swagger是一種受歡迎的API文件格式和工具,它提供了一個互動的UI介面,可以直觀地展示API的細節。在本文中,我將向您展示如何在Fas

如何使用 PHP 實作批次處理和資料批次操作 如何使用 PHP 實作批次處理和資料批次操作 Sep 06, 2023 am 10:46 AM

如何使用PHP實現批次處理和資料批量操作在開發Web應用程式過程中,經常會遇到需要同時處理多個資料的情況。為了提高效率和減少資料庫請求的次數,我們可以使用PHP來實現批次處理和資料批量操作。本文將介紹如何使用PHP來實現這些功能,並附加程式碼範例以供參考。批次處理資料當需要對大量資料進行相同的操作時,可以使用PHP的循環結構來進行批次處理。

如何在FastAPI中使用訊息佇列進行非同步任務處理 如何在FastAPI中使用訊息佇列進行非同步任務處理 Jul 30, 2023 pm 09:21 PM

如何在FastAPI中使用訊息佇列進行非同步任務處理引言:在網路應用程式中,經常會遇到需要處理耗時的任務,例如傳送電子郵件、產生報表等。如果將這些任務放在同步的請求-回應流程中,會導致使用者需要等待較長時間,降低使用者體驗和伺服器的回應速度。為了解決這個問題,我們可以使用訊息佇列來進行非同步任務處理。本文將介紹如何在FastAPI框架中使用訊息佇列進行非同步任務的處

PHP中如何使用物件-關聯映射(ORM)簡化資料庫操作? PHP中如何使用物件-關聯映射(ORM)簡化資料庫操作? May 07, 2024 am 08:39 AM

使用ORM可簡化PHP中的資料庫操作,它將物件對應到關聯式資料庫中。 Laravel中的EloquentORM允許使用物件導向的語法與資料庫交互,可透過定義模型類別、使用Eloquent方法或在實戰中建立部落格系統等方式來使用ORM。

如何在FastAPI中實現資料庫連線與事務處理 如何在FastAPI中實現資料庫連線與事務處理 Jul 30, 2023 am 11:45 AM

如何在FastAPI中實現資料庫連接和事務處理引言:隨著Web應用程式的快速發展,資料庫連接和事務處理成為了一個非常重要的主題。 FastAPI是一個高效能的PythonWeb框架,因其快速且易於使用而受到開發者的喜愛。在本文中,我們將介紹如何在FastAPI中實現資料庫連接和事務處理,以協助您建立可靠且高效的網路應用程式。第一部分:資料庫連線在FastA

See all articles