前言
本文从语法、库使用、数据库连接到接口开发、请求调用一步步讲解,适合新手学习与日后复习。全程使用 Python 内置库 + 轻量框架,无需复杂环境。
介绍基于 Python 的 Web 开发基础,涵盖 FastAPI 框架、SQLite3 数据库及 Requests 库的使用。内容包括环境安装、SQLite3 连接与操作语法、FastAPI 接口定义(GET/POST)、两者整合实现用户增删改查功能,以及使用 Requests 进行接口测试。适合新手学习 API 开发与数据库交互流程。

本文从语法、库使用、数据库连接到接口开发、请求调用一步步讲解,适合新手学习与日后复习。全程使用 Python 内置库 + 轻量框架,无需复杂环境。
pip install fastapi uvicorn requests
SQLite3 为 Python 自带,无需安装。
import sqlite3
conn = sqlite3.connect("test.db")
文件不存在会自动创建
cursor = conn.cursor()
游标用于执行 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()
conn.commit() # 提交增删改操作
conn.close() # 关闭连接
导入库 → 连接(创建)数据库 → 创建游标对象(操作数据库) → 执行 SQL 语句 → 提交操作并关闭连接
from fastapi import FastAPI
app = FastAPI()
@app.get("/hello")
def hello():
return {"message": "Hello FastAPI"}
@app.get("/user")
def get_user(name: str):
return {"你的名字": name}
@app.post("/add")
def add(name: str, age: int):
return {"接收数据": {"name": name, "age": age}}
import uvicorn
if __name__ == "__main__":
uvicorn.run("main:app", host="127.0.0.1", port=8000)
可以通过 http://127.0.0.1:8000/docs 来访问查看接口和调试
新建文件 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 result
# 运行服务
if __name__ == "__main__":
uvicorn.run("main:app", host="127.0.0.1", port=8000)
新建 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()

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML 转 Markdown 互为补充。 在线工具,Markdown 转 HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML 转 Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online