新闻详情

新闻详情

首页 / 资讯中心 / 详情

【Python项目实战】Flask个人博客(下):SQLite + SQLAlchemy数据持久化

发布时间:2026/9/13 23:13:13来源:尧图网络
【Python项目实战】Flask个人博客(下):SQLite + SQLAlchemy数据持久化
上篇【Python项目实战】Flask个人博客(上):路由、模板与静态资源有个软肋:文章写死在POSTS列表里,发一篇文章要改代码、重启程序。今天终结它——数据搬进真正的数据库,从此代码管长相,数据库管家当。🎯本篇成品:博客v2——文章存SQLite、首页自动按日期排序、可以在线写文章、可以删除。SQLAlchemy ORM首次登场,含注释约120行。📌 太长不看版(给想快速上手的你)项目信息一句话说明项目名称Flask个人博客(v2·数据库版)代码行数~120行(含注释) + 模板文件依赖flask+flask-sqlalchemy核心功能文章持久化存储 + 在线发布 + 删除 + 自动排序跑起来的命令python main.py→ 浏览器打开http://127.0.0.1:5000核心知识点ORM模型、数据库迁移、GET/POST区分、PRG模式做完你能得到一个有数据库、能在线发文章的博客!一、两分钟概念课:为什么要数据库,什么是ORM📁 文件存数据的三个天花板【Python项目实战】项目·命令行待办清单:文件读写 + JSON持久化这篇文章里使用JSON已经很优秀了,但随着项目长大:#天花板说明①查找慢上千条数据要遍历整个列表②并发冲突多人同时改会互相覆盖③缺少约束没有“字段不能为空”这类数据校验🎯 数据库天生解决这三件事。🔄 SQL和ORM的关系——一张表说清方式怎么查一篇文章特点手写SQLSELECT * FROM posts WHERE id = 1直接、强大,但要拼字符串ORM(本篇)Post.query.get_or_404(1)用Python类和对象操作数据库📌 ORM(对象关系映射)=把数据库的表翻译成Python的类,把一行数据翻译成一个对象。你写Python,SQLAlchemy替你生成SQL。📊 工作原理你的代码:Post.query.get_or_404(1) ↓ SQLAlchemy翻译 SQL语句:SELECT * FROM posts WHERE id = 1 ↓ 执行 数据库:SQLite文件(第14篇见过的那种单文件库) ↓ 结果包装成Post对象回到你手里💡 学习阶段的最佳路径:先跟ORM混熟,SQL慢慢补——但ORM生成的每条SQL都要能看懂,DB Browser打开库文件对照着看。二、第0步:setup1. 复制上一章的flask_blog为flask_blog_v2(保留v1做对比) 2. 激活venv 3. pip install flask-sqlalchemy 4. pip freeze requirements.txt🚨 注意包名陷阱:装的是flask-sqlalchemy,代码里导入flask_sqlalchemy。三、第1步:配置与Model——用类描述一张表"""flask_blog v2 —— 数据持久化版"""fromdatetimeimportdatefromflaskimportFlask,render_template,request,redirect,url_forfromflask_sqlalchemyimportSQLAlchemy app=Flask(__name__)app.config["SQLALCHEMY_DATABASE_URI"]="sqlite:///blog.db"app.config["SQLALCHEMY_TRACK_MODIFICATIONS"]=Falsedb=SQLAlchemy(app)classPost(db.Model):__tablename__="posts"id=db.Column(db.Integer,primary_key=True)# 主键:自动递增编号title=db.Column(db.String(120),nullable=False)# 不能为空date=db.Column(db.String(10),nullable=False)excerpt=db.Column(db.String(200),default=""
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

WinDev 8 HASP硬锁仿真原理与XP驱动级调试实战 2026/9/14 0:01:17

WinDev 8 HASP硬锁仿真原理与XP驱动级调试实战

简介:这是一套针对HASP硬件加密锁逆向与模拟调试的开发辅助资源,面向安全研究者、软件逆向工程师及老版本WinDev平台开发者,用于破解、分析或兼容性测试HASP保护机制。资源包含68个文件,总计4.38MB,涵盖38张界面截图&a…

阅读更多 →
二进制代码相似性检测:GTrans架构与抗混淆技术 2026/9/14 0:01:17

二进制代码相似性检测:GTrans架构与抗混淆技术

1. 二进制代码相似性检测的挑战与现状在软件安全分析领域,二进制代码相似性检测一直是个棘手的问题。想象一下,你手上有两个不同版本的软件,或者一个正版程序和一个疑似盗版版本,如何判断它们是否源自同一份源代码?这就…

阅读更多 →
零知识证明与zk-SNARKs技术详解 2026/9/14 0:01:17

零知识证明与zk-SNARKs技术详解

1. 零知识证明与zk-SNARKs技术概述零知识证明(Zero-Knowledge Proof)是现代密码学中一项革命性技术,它允许证明者向验证者证明某个陈述的真实性,而无需透露任何额外信息。想象一下,你向朋友证明自己知道保险箱密码&…

阅读更多 →
混沌工程注入网络丢包:验证支付重试风暴防范 2026/9/14 0:01:17

混沌工程注入网络丢包:验证支付重试风暴防范

混沌工程注入网络丢包:验证支付重试风暴防范在电商大促的支付与交易结算链路中,最让架构师谈虎色变的“次生灾害”,莫过于**“重试风暴(Retry Storm)”引发的自杀式级联雪崩**。 一个经典的事故演变链条通常是这样的&a…

阅读更多 →
Data Formulator 服务端路径安全开发规范:ConfinedDir 路径约束原语与全链路防护实践 2026/9/14 0:01:17

Data Formulator 服务端路径安全开发规范:ConfinedDir 路径约束原语与全链路防护实践

Data Formulator 服务端路径安全开发规范:ConfinedDir 路径约束原语与全链路防护实践 【免费下载链接】data-formulator 🪄 Data Formulator is an interactive AI-powered data analysis system makes it easy to connect, explore and visualize data.…

阅读更多 →
knowledge-work-plugins 市场营销插件(marketing)完全指南:从内容创作到 SEO 审计的 8 大 Agent 技能实战 2026/9/13 23:58:17

knowledge-work-plugins 市场营销插件(marketing)完全指南:从内容创作到 SEO 审计的 8 大 Agent 技能实战

knowledge-work-plugins 市场营销插件(marketing)完全指南:从内容创作到 SEO 审计的 8 大 Agent 技能实战 【免费下载链接】knowledge-work-plugins Open source repository of plugins primarily intended for knowledge workers to use in …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞