快速入门:FastAPI数据库集成实战指南
引言
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,与 Python 3.6+ 类型提示一起使用。它具有异步功能,这意味着它可以同时处理多个请求。数据库集成是构建任何 Web 应用程序的关键部分,FastAPI 同样可以轻松地与各种数据库集成。本文将为您提供一个快速入门指南,帮助您了解如何在 FastAPI 中集成数据库。
环境准备
在开始之前,请确保您已经安装了以下软件:
- Python 3.6+
- FastAPI
- Uvicorn(作为 ASGI 服务器)
- 数据库驱动(例如,PostgreSQL、MySQL、SQLite)
您可以使用以下命令安装这些依赖项:
pip install fastapi uvicorn databases 对于数据库驱动,您需要根据您选择的数据库安装相应的驱动。例如,对于 PostgreSQL,您可以使用以下命令:
pip install psycopg2-binary 创建 FastAPI 应用程序
首先,创建一个新的 Python 文件,例如 main.py,并导入所需的模块:
from fastapi import FastAPI 然后,创建一个 FastAPI 实例:
app = FastAPI() 数据库模型
在 FastAPI 中,您可以使用 Pydantic 模型来定义数据库模型。Pydantic 提供了一个数据验证和设置数据模型的方式。
以下是一个简单的用户模型示例:
from pydantic import BaseModel class User(BaseModel): id: int name: str age: int 数据库连接
接下来,您需要创建一个数据库连接。FastAPI 使用 databases 包来处理数据库连接。以下是如何连接到 PostgreSQL 数据库的示例:
from databases import Database DATABASE_URL = "postgresql://username:password@localhost/dbname" database = Database(DATABASE_URL) 创建数据库表
在 FastAPI 应用程序中,您可以使用 databases 包提供的 SQLModel 来定义数据库表。以下是一个使用 SQLModel 创建用户表的示例:
from sqlmodel import SQLModel, Field, create_engine SQLALCHEMY_DATABASE_URL = "sqlite:///./test.db" engine = create_engine(SQLALCHEMY_DATABASE_URL) Base.metadata.create_all(bind=engine) class User(SQLModel, table=True): id: int = Field(default=None, primary_key=True) name: str age: int 数据库操作
现在,您可以使用 SQLModel 来执行数据库操作,例如创建、读取、更新和删除(CRUD)。
以下是一个创建新用户的示例:
from sqlmodel import Session async def create_user(name: str, age: int): async with Session(engine) as session: new_user = User(name=name, age=age) session.add(new_user) await session.commit() await session.refresh(new_user) return new_user 创建 API 端点
最后,您需要创建 API 端点来处理 HTTP 请求。以下是一个创建用户端点的示例:
from fastapi import HTTPException @app.post("/users/") async def create_user(name: str, age: int): try: user = await create_user(name, age) return {"id": user.id, "name": user.name, "age": user.age} except Exception as e: raise HTTPException(status_code=400, detail=str(e)) 运行应用程序
要运行 FastAPI 应用程序,使用以下命令:
uvicorn main:app --reload 这将启动一个开发服务器,并监听 http://127.0.0.1:8000。
总结
本文提供了一个关于如何在 FastAPI 中集成数据库的快速入门指南。您学习了如何创建数据库模型、连接到数据库、执行数据库操作以及创建 API 端点。希望这个指南能帮助您开始使用 FastAPI 和数据库进行开发。
支付宝扫一扫
微信扫一扫