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

高效AI工作流:Z-Image-Turbo集成Python API批量出图

高效AI工作流:Z-Image-Turbo集成Python API批量出图 在AIGC(人工智能生成内容)快速发展的今天,图像生成模型已从实验室走向实际生产环境。阿里通义推出的 Z-Image-Turbo 模型凭借其高效的推理速度与高质量的图像输出,成为众多开发者和创意工作者的首选工具。本文将深入探讨如何通过二次开发构建基于 Z-Image-Turbo 的高效 AI 工作流,并重点介绍如何利用其内置 Python API 实现批量图像生成,显著提升内容创作效率。 本项目由“科哥”主导二次开发,在原始模型基础上优化了 WebUI 交互逻辑与后端服务架构,支持本地部署、参数灵活配置及程序化调用,真正实现“一键生成 + 批量处理”的闭环工作流。 技术选型背景:为何选择 Z-Image-Turbo? 当前主流图像生成模型如 Stable Diffusion 系列虽功能强大,但普遍存在推理耗时长、显存占用高、部署复杂等问题,难以满足高频次、低延迟的业务需求。 而 Z-Image-Turbo 基于阿里通义实验室最新研究成果,采用轻量化扩散架构设计,在保证图像质量的前提下实现了:

By Ne0inhk
[特殊字符] Python在CentOS系统执行深度指南

[特殊字符] Python在CentOS系统执行深度指南

文章目录 * 1 Python环境安装与配置问题 * 1.1 系统自带Python的限制 * 1.2 安装Python 3的常见问题及解决方案 * 1.3 SSL模块问题解决方案 * 1.4 环境变量配置与管理 * 1.5 软件集合(SCL)替代方案 * 2 包管理与虚拟环境问题 * 2.1 pip包管理器问题与解决方案 * 2.2 虚拟环境的最佳实践 * 2.3 依赖兼容性问题解决 * 2.4 虚拟环境目录结构理解 * 3 模块导入与路径问题 * 3.1 Python模块搜索路径机制 * 3.2 常见模块导入错误与解决 * 3.3 路径配置最佳实践 * 3.4 特殊模块问题处理 * 3.

By Ne0inhk
Python 驱动浏览器自动化:Playwright + AI 的 2026 最佳实践

Python 驱动浏览器自动化:Playwright + AI 的 2026 最佳实践

摘要:在 Web 自动化领域,Selenium 曾经的霸主地位已成历史,Playwright 凭其“快、稳、强”的现代特性成为了新标准。而在 2026 年,随着 LLM(大语言模型)和视觉多模态模型的爆发,自动化测试与 RPA(机器人流程自动化)迎来了范式革命。本文将深度解析 Playwright 的核心架构,并手把手教你构建一个具备“自愈能力”的 AI 驱动自动化 Agent。本文超 7000 字,包含大量实战代码与反爬对抗技巧。 第一章:Selenium 已死,Playwright 当立? 1.1 自动化的“不可能三角” 长期以来,Web 自动化工程师都在速度、稳定性和抗检测性之间做取舍: * Selenium:

By Ne0inhk

用 Python 批量下载全量 A 股历史行情数据:基于 AKShare 的高效实践

关键词:AKShare, A股数据, 股票历史行情, 量化分析, Python 金融, 断点续传 适用读者:量化交易初学者、金融数据分析师、Python 爱好者、学术研究者 💡 为什么需要本地化 A 股历史数据? 在量化投资、策略回测、因子挖掘等场景中,高质量、完整、本地存储的历史行情数据是不可或缺的基础。然而: * 商业数据接口(如 Wind、Tushare Pro)往往收费或有调用限制; * 免费接口(如早期 Tushare)可能不稳定或字段不全; * 网页爬虫易被反爬,维护成本高。 幸运的是,开源项目 AKShare 提供了免费、稳定、覆盖全面的中国金融市场数据接口,包括: * A 股日线、分钟线 * 指数、基金、期货、期权

By Ne0inhk