作者:Eason_LYC
悲观者预言失败,十言九中。 乐观者创造奇迹,一次即可。
一个人的价值,只在于他所拥有的。所以可以不学无术,但不能一无所有!
技术领域:WEB安全、网络攻防
关注WEB安全、网络攻防。我的专栏文章知识点全面细致,逻辑清晰、结合实战,让你在学习路上事半功倍,少走弯路!
个人社区:极乐世界-技术至上
追求技术至上,这是我们理想中的极乐世界~(关注我即可加入社区)
本专栏是对Flask官方文档中个人博客搭建进行的归纳总结,与官方文档结合事半功倍。基础薄弱的同学请戳Flask官方文档教程
本人经验,学习一门语言或框架时,
请首先阅读官方文档
。学习完毕后,再看其他相关文章(如本系列文章),才是正确的学习道路。
如果python都完全不熟悉,一定不要着急学习框架,
请首先学习python官方文档,一步一个脚印。要不然从入门到放弃是大概率事件。
Python 官方文档教程
本系列已发布文章:
文章目录
1. 本章知识点总结
2. 定义(创建)数据库
2.1 简单规划
开发的个人博客,计划使用SQLite 数据库来储存用户和博客内容。 Python 内置了 SQLite 数据库支持,相应的模块为 sqlite3
如果你不是很熟悉 SQL ,请先阅读SQLite 官方文档 ,不用精通,能使用即可。
计划建两个表分别为user
表和post
表,sql表文件保存路径为flaskr/schema.sql
2.2 user表字段分析
- id:用户id、整数、主键、自增加
- username:用户名、文本、值唯一,不能重复
- password: 登陆密码、文本、不能为空
flaskr/schema.sql
2.3 post表字段分析
- id: 文章id、整数、主键、自增加
- author_id:文章作者id、整数、不为空、外键
- created:文章创建时间、时间戳、不为空(默认值为创建时间)
- title:文章标题、文本、不为空
- body:文章内容、文本,不为空
2.4 创建数据库的sql脚本
编写schema.sql
的脚本,该脚本用于创建SQLite 数据库,并内置user表和post表。所以这个创建过程仅在个人博客第一次运行时运行一次即可。
后续数据库内容的更新应执行常规的增删改查操作。
注意,该脚本仅在个人博客第一次运行时创建数据库,后续不应再次运行(否则,数据库将被重置)。
所以在第一次运行时,要先卸载数据库中所有表,以防报错。
路径flaskr/schema.sql
// 卸载库中所有表
DROP TABLE IF EXISTS user;
DROP TABLE IF EXISTS post;
// 新建user表
CREATE TABLE user (
id INTEGER PRIMARY KEY AUTOINCREMENT,
username TEXT UNIQUE NOT NULL,
password TEXT NOT NULL
);
// 新建post表
CREATE TABLE post (
id INTEGER PRIMARY KEY AUTOINCREMENT,
author_id INTEGER NOT NULL,
created TIMESTAMP NOT NULL DEFAULT CURRENT\_TIMESTAMP,
title TEXT NOT NULL,
body TEXT NOT NULL,
FOREIGN KEY (author_id) REFERENCES user (id)
);
3. 操作数据库
前面写完了sql脚本,接下来就要写db.py
这个python脚本,用来操作数据库。路径规划为flaskr/db.py
操作具体包括了如下几个具体功能
- 建立数据库连接 — 用于将程序与数据库建立连接
- 关闭数据库连接 — 完成一次操作后,及时关闭当前连接
- 初始化数据库 — 第一次运行博客时创建数据库生成表
- 在应用中注册
db.py
实现flask的调用
这个理解起来,有点绕,简单说来,
我们自己定义的函数需要在应用实例中注册,否则无法使用。应用实例就是app = Flask(__name__, instance_relative_config=True)
但是问题是,这个app=
我们是写在了工厂函数中(create_app)
。意思就是这个实例其实并没有建立,所以我们这个注册只能在工厂函数中注册。那问题来了,在一个工厂函数中如何注册。
答案就是,函数调用另一个函数实现:工厂函数中app实例动态创建时,动态调用注册函数,实现动态注册。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
阶课程,涵盖了95%以上大数据知识点,真正体系化!**
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新