news 2026/5/5 21:15:14

边走边聊 Python 3.8:Chapter 14:SQLite + SQLAlchemy

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
边走边聊 Python 3.8:Chapter 14:SQLite + SQLAlchemy

Chapter 14:SQLite + SQLAlchemy

数据需要家,而数据库就是它的归宿。本章将带你从最基础的 SQL 开始,逐步掌握 ORM、模型定义、增删改查、事务等关键能力。你会学会如何让数据持久化、结构化、可查询,并为后续的大项目打下坚实基础。


“数据需要家,而数据库就是它的归宿。”

大家好!我是你的 Win7 + Python 3.8 专属导师。从第1篇开始,我们一步步用 Flask 搭起了知识库应用,前面的章节里知识库还是靠内存列表或 JSON 文件存储,刷新页面就没了。现在,第14篇正式引入数据库,让数据真正持久化、支持搜索、分页,还能轻松扩展。

本篇完全针对Win7 系统 + Python 3.8环境编写,所有命令、代码、坑点都已亲自在 Win7 上验证通过,零配置、零服务器,读完直接复制就能跑!

1. SQLite:零配置,Win7 自带完美兼容

SQLite 是世界上最流行的嵌入式数据库,完全不需要安装任何服务器,就是一个.db文件。

为什么选它?

  • Python 3.8 标准库自带sqlite3模块(Win7 自带,无需任何额外下载)。
  • 单文件存储,复制粘贴就能备份/迁移。
  • 适合我们的知识库场景(数据量不会太大)。
  • Win7 上运行零问题,无需管理员权限。

验证一下(Win7 命令提示符):

python -c "import sqlite3; print(sqlite3.sqlite_version)"

输出类似3.31.1就说明一切正常。

2. SQLAlchemy ORM 入门:不再手写 SQL

SQLAlchemy 是 Python 最强大的 ORM(对象关系映射)框架。
核心思想:把数据库表映射成 Python 类,增删改查全用对象操作,告别手写 SQL。

我们用Flask-SQLAlchemy扩展(专门为 Flask 优化),安装命令(Win7 Python 3.8):

pip install flask-sqlalchemy==3.0.5 sqlalchemy==2.0.23 alembic==1.12.0

(版本已锁定兼容 Python 3.8 和 Win7,避免新版本可能的兼容性问题)

3. 模型定义、增删改查、迁移

项目结构(延续之前章节)

app/ ├── config.py ├── models.py # 新增 ├── routes/ │ └── knowledge.py # 知识库路由 ├── services/ │ └── knowledge_service.py └── app.py

models.py(完整代码,直接复制):

fromflask_sqlalchemyimportSQLAlchemyfromdatetimeimportdatetime db=SQLAlchemy()classKnowledge(db.Model):__tablename__='knowledge'id=db.Column(db.Integer,primary_key=True)title=db.Column(db.String(200),nullable=False,index=True)content=db.Column(db.Text,nullable=False)created_at=db.Column(db.DateTime,default=datetime.utcnow,index=True)updated_at=db.Column(db.DateTime,default=datetime.utcnow,onupdate=datetime.utcnow)def__repr__(self):
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/5 21:04:45

SpringBoot邮件验证码实战:从QQ邮箱配置到Redis缓存,完整避坑指南

SpringBoot邮件验证码实战:从QQ邮箱配置到Redis缓存,完整避坑指南 在中小型互联网应用的开发中,用户注册和登录模块的安全性至关重要。邮件验证码作为一种常见的身份验证手段,既能有效防止机器人注册,又能确保用户邮箱…

作者头像 李华
网站建设 2026/5/5 21:04:42

OpenClaw 框架接入 Taotoken 作为 OpenAI 兼容供应商的配置要点

OpenClaw 框架接入 Taotoken 作为 OpenAI 兼容供应商的配置要点 1. 准备工作 在开始配置之前,请确保已安装 OpenClaw 框架并拥有有效的 Taotoken API Key。API Key 可在 Taotoken 控制台的「API 密钥」页面创建。同时,建议在模型广场查看可用的模型 ID…

作者头像 李华
网站建设 2026/5/5 20:57:44

mini-dog-c编译器开发 - 05 解释器与代码生成

本篇为 mini-dog-c 编译器开发系列第五篇,介绍解释器的实现,包括环境管理、表达式求值和函数调用。1. 解释器 vs 编译器很多人容易混淆"解释器"和"编译器",其实区别很简单:编译器:把源代码翻译成另…

作者头像 李华
网站建设 2026/5/5 20:55:22

从0到成功:通过 SSH(443端口)克隆 GitHub 仓库完整指南

从0到成功:通过 SSH(443端口)克隆 GitHub 仓库完整指南 在使用 GitHub 进行项目开发时,很多人会遇到一个常见问题: 使用 HTTPS 克隆仓库时连接失败,或者使用 SSH 时被 22 端口限制。 本文基于一次完整实操&…

作者头像 李华