Python 入门:FastAPI + SQLite3 + Requests 基础教学
前言
本文从语法、库使用、数据库连接到接口开发、请求调用一步步讲解,适合新手学习与日后复习。全程使用 Python 内置库 + 轻量框架,无需复杂环境。
一、基础知识点说明
1.1 各组件作用
- - FastAPI:Python 高性能 Web 框架,用于快速编写 API 接口。
- - SQLite3:Python 内置轻量级数据库,无需安装、无需启动服务,直接以文件形式存储数据。
- - Requests:用于发送 HTTP 请求,测试或调用自己写的 API。
- - Uvicorn:ASGI 服务器,用于运行 FastAPI 项目。
1.2 环境安装
pip install fastapi uvicorn requests
SQLite3 为 Python 自带,无需安装。
二、SQLite3 基础语法
2.1 导入库
import sqlite32.2 连接/创建数据库
conn = sqlite3.connect("test.db")文件不存在会自动创建
2.3 创建游标
cursor = conn.cursor()游标用于执行SQL语句
2.4 执行SQL语句
# 创建表 cursor.execute(''' CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER ) ''') # 插入数据 cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ("张三", 18)) # 查询数据 cursor.execute("SELECT * FROM users") data = cursor.fetchall()2.5 提交与关闭
conn.commit() # 提交增删改操作 conn.close() # 关闭连接导入库 → 连接(创建)数据库 → 创建游标对象(操作数据库) → 执行SQL语句 → 提交操作并关闭连接
三、FastAPI 基础语法
3.1 导入与创建应用
from fastapi import FastAPI app = FastAPI()3.2 定义get接口
@app.get("/hello") def hello(): return {"message": "Hello FastAPI"}3.3 定义带参数get接口
@app.get("/user") def get_user(name: str): return {"你的名字": name}3.4 定义post接口
@app.post("/add") def add(name: str, age: int): return {"接收数据": {"name": name, "age": age}}3.5 运行服务
import uvicorn if __name__ == "__main__": uvicorn.run("main:app", host="127.0.0.1", port=8000)可以通过 http://127.0.0.1:8000/docs 来访问查看接口和调试
四、完整整合fastapi+sqlite3
新建文件 main.py ,以下为可直接运行的完整代码。
import sqlite3 from fastapi import FastAPI import uvicorn # 创建 FastAPI 实例 app = FastAPI() # 初始化数据库 def init_db(): conn = sqlite3.connect("data.db") cursor = conn.cursor() cursor.execute(''' CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, age INTEGER NOT NULL ) ''') conn.commit() conn.close() # 程序启动时初始化 init_db() # 接口1:添加用户(POST) @app.post("/api/add_user") def add_user(name: str, age: int): try: conn = sqlite3.connect("data.db") cursor = conn.cursor() cursor.execute("INSERT INTO users (name, age) VALUES (?,?)", (name, age)) conn.commit() conn.close() return True except Exception as e: return False # 接口2:获取所有用户(GET) @app.get("/api/get_users") def get_users(): conn = sqlite3.connect("data.db") cursor = conn.cursor() cursor.execute("SELECT * FROM users") users = cursor.fetchall() conn.close() result = [] for u in users: result.append({ "id": u[0], "name": u[1], "age": u[2] }) return True # 运行服务 if __name__ == "__main__": uvicorn.run("main:app", host="127.0.0.1", port=8000)五、使用 Requests 请求接口(测试)
新建 test_request.py ,用于调用上面的 API。
import requests url = "http://127.0.0.1:8000/api" # 1. 添加用户 def add_user(): res = requests.post(f"{url}/add_user", params={ "name": "Python学习者", "age": 20 }) print("添加结果:", res.json()) # 2. 获取用户列表 def get_users(): res = requests.get(f"{url}/get_users") print("所有用户:", res.json()) if __name__ == "__main__": add_user() get_users()六、运行步骤
- 运行 main.py 启动 API 服务
- 运行 test_request.py 发送请求
- 查看控制台输出
- 数据库文件 data.db 自动生成
七、核心逻辑总结
- SQLite 流程:连接 → 创建游标 → 执行 SQL → 提交 → 关闭
- FastAPI 流程:创建 app → 装饰器定义接口 → 编写函数 → 运行服务
- 传参方式:GET/POST 均可用 params 传参
- Requests 流程:指定 URL → 传参 → 获取响应 → 解析 JSON