Python 入门:FastAPI + SQLite3 + Requests 基础教学

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 sqlite3

2.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()

六、运行步骤

  1. 运行  main.py  启动 API 服务
  2. 运行  test_request.py  发送请求
  3. 查看控制台输出
  4. 数据库文件  data.db  自动生成

七、核心逻辑总结

  1. SQLite 流程:连接 → 创建游标 → 执行 SQL → 提交 → 关闭
  2. FastAPI 流程:创建 app → 装饰器定义接口 → 编写函数 → 运行服务
  3. 传参方式:GET/POST 均可用  params  传参
  4. Requests 流程:指定 URL → 传参 → 获取响应 → 解析 JSON

Read more

Flutter 三方库 shorebird_redis_client 鸿蒙适配交互分布式字典引擎栈:以 RESP 总线桥接高负载实时网关建立穿透防御状态共享网络-适配鸿蒙 HarmonyOS ohos

Flutter 三方库 shorebird_redis_client 鸿蒙适配交互分布式字典引擎栈:以 RESP 总线桥接高负载实时网关建立穿透防御状态共享网络-适配鸿蒙 HarmonyOS ohos

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 shorebird_redis_client 接驳鸿蒙超速交互分布式字典引擎栈适配:以 RESP 通信总线桥接高负载实时网关建立千万级穿透防御状态共享网络 前言 在 OpenHarmony 全场景应用开发中,面对大规模的高并发数据处理(如分布式排行榜、实时消息队列、或者是跨终端同步的缓存状态),传统的各种本地 SQL 数据库往往在灵活性和读写延迟上难以满足“毫秒级”响应的需求。shorebird_redis_client 为 Flutter 开发者提供了一套高性能、专注于极致速度的 Redis 客户端访问方案。本文将带大家在鸿蒙端实战适配这一“内存级”数据底座。 一、原直线性 / 概念介绍 1.1 基础原理/概念介绍 shorebird_redis_client 的核心逻辑是基于

By Ne0inhk
Flutter 组件 tree_iterator 适配鸿蒙 HarmonyOS 实战:高性能树状数据遍历,构建海量节点递归优化与分布式层级调度架构

Flutter 组件 tree_iterator 适配鸿蒙 HarmonyOS 实战:高性能树状数据遍历,构建海量节点递归优化与分布式层级调度架构

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 tree_iterator 适配鸿蒙 HarmonyOS 实战:高性能树状数据遍历,构建海量节点递归优化与分布式层级调度架构 前言 在鸿蒙(OpenHarmony)生态迈向万物智联、涉及海量传感器拓扑映射、复杂 UI 树状 DOM 解析及超大型目录层级处理的背景下,如何实现高效、内存友好的“非线性数据遍历”,已成为决定应用数据发现效率与算法性能表现的基石。在鸿蒙设备这类强调 AOT 极致性能与低堆内存占用的环境下,如果应用依然采用简单的递归(Recursion)进行深度数据挖掘,由于由于树状结构深度的不可控性,极易由于由于“栈溢出(Stack Overflow)”或“重复解析”导致系统的瞬时崩卡。 我们需要一种能够解耦数据结构与遍历逻辑、支持深度/广度优先算法且具备“零样板代码”调用的迭代器方案。 tree_iterator 为

By Ne0inhk
从小项目到大型鸿蒙 App 的架构变化

从小项目到大型鸿蒙 App 的架构变化

子玥酱(掘金 / 知乎 / ZEEKLOG / 简书 同名) 大家好,我是子玥酱,一名长期深耕在一线的前端程序媛 👩‍💻。曾就职于多家知名互联网大厂,目前在某国企负责前端软件研发相关工作,主要聚焦于业务型系统的工程化建设与长期维护。 我持续输出和沉淀前端领域的实战经验,日常关注并分享的技术方向包括前端工程化、小程序、React / RN、Flutter、跨端方案, 在复杂业务落地、组件抽象、性能优化以及多端协作方面积累了大量真实项目经验。 技术方向:前端 / 跨端 / 小程序 / 移动端工程化 内容平台:掘金、知乎、ZEEKLOG、简书 创作特点:实战导向、源码拆解、少空谈多落地 文章状态:长期稳定更新,大量原创输出 我的内容主要围绕 前端技术实战、真实业务踩坑总结、框架与方案选型思考、行业趋势解读 展开。文章不会停留在“API 怎么用”,而是更关注为什么这么设计、在什么场景下容易踩坑、

By Ne0inhk