当前位置: 首页 > news >正文

边走边聊 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):
http://www.jsqmd.com/news/759527/

相关文章:

  • 在GitHub中优雅地展示数学公式
  • 为什么92%的Dify早期用户在2026 Q1遭遇了API令牌泄露?——Dify 2026网关安全加固必须做的3件事
  • 别再只盯着LVDS原理了!手把手教你搞定PCB上的差分线阻抗匹配(附4层板实战经验)
  • 5分钟解锁Mac NTFS读写自由:跨平台文件传输终极指南
  • 2026年Hermes Agent/OpenClaw怎么搭建?3分钟云端保姆级安装及百炼Coding Plan步骤
  • CC Switch:一个工具管住所有 AI 编程助手,Claude Code、Codex、Gemini CLI 一键切换
  • 怎么看财报?
  • Taotoken 如何为多模型实验提供稳定的路由与容灾保障
  • MaxBot抢票机器人:高效智能的多平台票务自动化解决方案
  • 告别繁琐截图:用快马平台快速打造高效率plaintext转图片工具
  • 西安电子科技大学LaTeX终极指南:5分钟搞定毕业论文排版
  • 别再乱改材质了!UE5中动态材质实例(Dynamic Material Instance)的正确打开方式
  • 分布式光伏规模化开发背景下储能优化配置及提升电能质量粒子群算法【附代码】
  • 服务器定时发送邮件设置
  • 通达信缠论量化插件:3分钟实现智能K线分析
  • Go数组去重的20种实现方式,AI时代解决问题的不同思路
  • TradingAgents 多智能体交易框架深度评测
  • Palworld存档救援指南:3步修复损坏存档,找回你的帕鲁世界
  • 2026年Hermes Agent/OpenClaw怎么部署?阿里云混合云部署及Coding Plan配置
  • 【强力推荐】res-downloader:如何轻松获取全网资源的智能下载神器
  • 【Dify低代码集成实战指南】:20年架构师亲授5大避坑法则与3步极速接入法
  • 101页满分PPT | 智能工厂系统解决方案
  • 长期项目使用Taotoken按token计费模式带来的成本可控感受
  • CefFlashBrowser:免费Flash浏览器终极指南,让经典Flash内容重获新生
  • JSON 转 Proto 工具(支持嵌套与注释解析)
  • NVIDIA Jetson Orin 简介
  • 利用 One-API 实现 Awesome- GPT( Zotero 插件)的多模型切换
  • 2025届学术党必备的六大AI学术平台推荐
  • 行测申论之外,这些“隐藏”考试内容你知道吗?银保监、外交部等岗位专业课备考指南
  • 新手零代码入门:借助快马AI生成你的第一个有赞式微商城