首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

[SQLite]揭秘FastAPI与sqlite的极速融合:轻松构建高效数据库应用

发布于 2025-06-23 19:55:58
0
1140

FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,与 Python 3.6+ 类型提示一起使用。SQLite 是一个轻量级的数据库,它是一个自包含、无服务器、零配置的数据库...

FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,与 Python 3.6+ 类型提示一起使用。SQLite 是一个轻量级的数据库,它是一个自包含、无服务器、零配置的数据库,非常适合小型项目或开发环境。本文将揭秘 FastAPI 与 SQLite 的融合,展示如何轻松构建高效数据库应用。

快速搭建 FastAPI 项目

首先,你需要安装 FastAPI 和 Uvicorn,这是 FastAPI 的推荐 Web 服务器。

pip install fastapi uvicorn

然后,创建一个名为 main.py 的文件,并添加以下代码:

from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def read_root(): return {"message": "Hello World"}

运行以下命令启动服务器:

uvicorn main:app --reload

访问 http://127.0.0.1:8000/,你应该能看到 “Hello World” 消息。

连接 SQLite 数据库

接下来,我们需要连接到 SQLite 数据库。首先,确保你的 SQLite 数据库文件存在。例如,创建一个名为 database.db 的文件。

然后,在 main.py 文件中添加以下代码:

from fastapi import FastAPI, Depends, HTTPException
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from pydantic import BaseModel
from typing import List
# 创建数据库引擎
engine = create_engine("sqlite:///database.db")
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
# 创建 FastAPI 应用
app = FastAPI()
# 创建数据库会话
def get_db(): db = SessionLocal() try: yield db finally: db.close()

定义数据模型

使用 SQLAlchemy ORM 定义数据模型。例如,创建一个名为 User 的模型:

from sqlalchemy import Column, Integer, String
class User(BaseModel): id: int name: str age: int
class UserTable(User, Table): __tablename__ = "users" id = Column(Integer, primary_key=True, index=True) name = Column(String, index=True) age = Column(Integer)

创建数据库表

main.py 文件中添加以下代码:

from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import create_engine
Base = declarative_base()
# 创建数据库引擎
engine = create_engine("sqlite:///database.db")
# 创建所有表
Base.metadata.create_all(bind=engine)

运行以下命令创建数据库表:

python main.py

添加、查询、更新和删除数据

现在,我们可以添加、查询、更新和删除数据。

添加数据

main.py 文件中添加以下代码:

from sqlalchemy.orm import Session
@app.post("/users/")
async def create_user(user: User, db: Session = Depends(get_db)): db_user = UserTable(**user.dict()) db.add(db_user) db.commit() db.refresh(db_user) return db_user

查询数据

main.py 文件中添加以下代码:

@app.get("/users/")
async def read_users(db: Session = Depends(get_db)): users = db.query(UserTable).all() return users

更新数据

main.py 文件中添加以下代码:

@app.put("/users/{id}")
async def update_user(id: int, user: User, db: Session = Depends(get_db)): db_user = db.query(UserTable).filter(UserTable.id == id).first() if db_user is None: raise HTTPException(status_code=404, detail="User not found") db_user.name = user.name db_user.age = user.age db.commit() db.refresh(db_user) return db_user

删除数据

main.py 文件中添加以下代码:

@app.delete("/users/{id}")
async def delete_user(id: int, db: Session = Depends(get_db)): db_user = db.query(UserTable).filter(UserTable.id == id).first() if db_user is None: raise HTTPException(status_code=404, detail="User not found") db.delete(db_user) db.commit() return {"message": "User deleted successfully"}

总结

本文介绍了如何使用 FastAPI 和 SQLite 构建高效数据库应用。通过使用 SQLAlchemy ORM,我们可以轻松地定义数据模型、连接数据库、添加、查询、更新和删除数据。FastAPI 与 SQLite 的融合为开发人员提供了快速、高效的方式构建 API 应用。

评论
一个月内的热帖推荐
啊龙
Lv.1普通用户

9545

帖子

31

小组

3242

积分

赞助商广告
站长交流