Skip to content

Commit 4aa1654

Browse files
committed
Update remaining chapters and changelog
1 parent 66e7d2f commit 4aa1654

7 files changed

Lines changed: 24 additions & 27 deletions

File tree

CHANGES.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@
44

55
Released: -
66

7-
- 引入对 uv 的介绍
7+
- 增加对 uv 的介绍
88
- 升级到 SQLAlchemy 2.x
99
- 针对 Flask 3.1.x 进行内容更新
10+
- 增加对蓝本、工厂函数的介绍
1011

1112
## 3.0
1213

chapters/12-challenge.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
# 小挑战
22

3-
经过本书的学习,你应该有能力独立开发一个简单的 Web 程序了。所以这里有一个小挑战:为你的 Watchlist 添加一个留言板功能,效果类似 [SayHello](http://sayhello.helloflask.com)
3+
经过本书的学习,你应该有能力独立开发一个简单的 Web 程序了。这里为你准备的小挑战是:给你的 Watchlist 程序添加一个留言板功能,效果类似 [SayHello](http://sayhello.helloflask.com)
44

55
下面是一些编写提示:
66

77
* 编写表示留言的模型类,更新数据库表
88
* 创建留言页面的模板
99
* 在模板中添加留言表单
10-
* 添加显示留言页面的视图函数
10+
* 创建用来显示留言页面的视图函数
1111
* 在显示留言页面的视图函数编写处理表单的代码
1212
* 生成一些虚拟数据进行测试
1313
* 编写单元测试
1414
* 更新到部署后的程序
1515
* 可以参考 [SayHello 源码](https://github.com/greyli/sayhello)
1616

17-
如果在完成这个挑战的过程中遇到了困难,可以在 [代码厨房社区](https://codekitchen.community)发起讨论(设置帖子分类为“Flask 入门教程”)。除此之外,你可以在后记查看更多讨论的去处
17+
如果在完成这个挑战的过程中遇到了困难,可以在 [代码厨房社区](https://codekitchen.community)发起讨论(设置帖子分类为“Flask 入门教程”)。除此之外,后记列出了更多讨论的好去处

chapters/13-postscript.md

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# 后记
22

3-
恭喜,你已经完成了整个 Flask 入门教程。不出意外的话,你也编写了你的第一个 Web 程序,并把它部署到了互联网上。这是一件值得纪念的事,它可以作为你的编程学习之路上的一个小小的里程碑。继续加油!
3+
恭喜,你已经完成了整个 Flask 入门教程。不出意外的话,你也编写了你的第一个 Web 程序,并把它部署到了互联网上。这是一件值得纪念的事,可以作为你的编程学习之路上的一个小小的里程碑。继续加油!
44

55

66
## 留言 & 打卡 & 反馈
@@ -10,7 +10,7 @@
1010

1111
## 进阶阅读
1212

13-
说来惭愧,在这本教程几乎每一章的结尾,我都会提到[《Flask Web 开发实战》](http://helloflask.com/book/1)每次写到这里,我都觉得自己好像在写“问候家明”或是“熹贵妃安”。所以,最合适的进阶读物我已经推荐过很多次了。除了这本书,其他的进阶读物如下:
13+
在这本教程几乎每一章的结尾,我都会提到[《Flask Web 开发实战》](http://helloflask.com/book/1)每次写到这里,我都觉得自己好像在写“问候家明”或是“熹贵妃安”。所以,最合适的进阶读物我已经推荐过很多次了。除了这本书,其他的进阶读物如下:
1414

1515
* [Flask 官方文档](https://flask.palletsprojects.com/)
1616
* [Flask 文档中文翻译](https://flask-zh.readthedocs.io/)
@@ -20,10 +20,8 @@
2020

2121
## 未完待续
2222

23-
你喜欢这本书以及这本书的写作模式吗
23+
你喜欢这本书的写作模式吗
2424

25-
如果有足够的人喜欢的话,或许我会考虑写一本包含 Flask 进阶知识的《Flask 进阶教程》或是一本话题更广的《[编程入门教程](https://codekitchen.community/t/topic/1103)》。按照设想,在这个进阶教程里,这个 Watchlist 程序变成一个支持多人注册和使用的简化版豆瓣电影 / IMDb。同时介绍各类常用扩展的使用和 Flask 上下文、蓝本等进阶知识
25+
在这个 AI 编程时代,了解基本的编程概念和软技能变得尤为重要。我在计划写一本《[编程入门教程](https://github.com/greyli/cookbook)》。写作模式类似这本书,每一章涉及一个编程工具或概念。提供尽可能少的细节,但是尽可能让你自己动手一起写代码
2626

27-
再或者,这个教程或许会升级为一本完整的书,使用类似的编写模式,引入一个更加丰富有趣的程序,包含优化后的入门知识和 Flask 进阶内容。
28-
29-
如果你期待这样一本进阶教程 / 书的出现,欢迎[让我知道](https://codekitchen.community/t/topic/64)
27+
如果你期待这样一本书的出现,欢迎[让我知道](https://codekitchen.community/t/topic/64)

chapters/5-database.md

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,11 @@ db = SQLAlchemy(app, model_class=Base) # 初始化扩展,传入程序实例 a
3939
下面写入了一个 `SQLALCHEMY_DATABASE_URI` 变量来告诉 SQLAlchemy 数据库连接地址:
4040

4141
```python
42-
import os
42+
from pathlib import Path
4343

4444
# ...
4545

46-
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////' + os.path.join(app.root_path, 'data.db')
46+
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////' + str(Path(app.root_path) / 'data.db')
4747
```
4848

4949
> **注意** 这个配置变量的最后一个单词是 URI,而不是 URL。
@@ -67,14 +67,10 @@ import sys
6767
from flask import Flask
6868
from flask_sqlalchemy import SQLAlchemy
6969

70-
WIN = sys.platform.startswith('win')
71-
if WIN: # 如果是 Windows 系统,使用三个斜线
72-
prefix = 'sqlite:///'
73-
else: # 否则使用四个斜线
74-
prefix = 'sqlite:////'
70+
SQLITE_PREFIX = 'sqlite:///' if sys.platform.startswith('win') else 'sqlite:////'
7571

7672
app = Flask(__name__)
77-
app.config['SQLALCHEMY_DATABASE_URI'] = prefix + os.path.join(app.root_path, 'data.db')
73+
app.config['SQLALCHEMY_DATABASE_URI'] = SQLITE_PREFIX + str(Path(app.root_path) / 'data.db')
7874
db = SQLAlchemy(app)
7975
```
8076

chapters/6-advanced-template.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ def page_not_found(error): # 接受异常对象作为参数
7676
*app.py:模板上下文处理函数*
7777

7878
```python
79+
from sqlalchemy import select
80+
7981
@app.context_processor
8082
def inject_user(): # 函数名可以随意修改
8183
user = db.session.execute(select(User)).scalar()

chapters/README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Flask 入门教程
22

3-
这是一本 Flask 入门教程,提供了入门 Flask 所需的最少信息你可以跟随本书自己动手开发一个简单的 [Watchlist 程序](https://github.com/helloflask/watchlist)。本书主页为 <http://helloflask.com/book/3>
3+
这是一本 Flask 入门教程,提供了入门 Flask 所需的最少信息你可以跟随本书自己动手开发一个简单的 [Watchlist 程序](https://github.com/helloflask/watchlist)。本书主页为 <http://helloflask.com/book/3>
44

55

66
## 关于作者
@@ -19,8 +19,8 @@
1919
- 第 6 章:模板优化
2020
- 第 7 章:表单
2121
- 第 8 章:用户认证
22-
- 第 9 章:测试
23-
- 第 10 章:组织你的代码
22+
- 第 9 章:组织你的代码
23+
- 第 10 章:测试
2424
- 第 11 章:部署上线
2525
- 小挑战
2626
- 后记
@@ -34,10 +34,10 @@
3434

3535
作者:[李辉](http://greyli.com)
3636

37-
版本:3.0
37+
版本:4.0
3838

39-
发布时间:2022.7.16
39+
发布时间:2025.8.16
4040

41-
© 2018 - 2022 [李辉](http://greyli.com)(Grey Li) / [HelloFlask.com](http://helloflask.com)
41+
© 2018 - 2025 [李辉](http://greyli.com)(Grey Li) / [HelloFlask.com](http://helloflask.com)
4242

4343
本书采用 [CC BY-NC-ND 3.0](https://creativecommons.org/licenses/by-nc-nd/3.0/deed.zh) 协议授权,禁止商用、演绎后分发或无署名转载。

chapters/SUMMARY.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
* [第 6 章:模板优化](6-advanced-template.md)
1111
* [第 7 章:表单](7-form.md)
1212
* [第 8 章:用户认证](8-auth.md)
13-
* [第 9 章:测试](9-test.md)
14-
* [第 10 章:组织你的代码](10-organize.md)
13+
* [第 9 章:组织你的代码](9-organize.md)
14+
* [第 10 章:测试](10-test.md)
1515
* [第 11 章:部署上线](11-deployment.md)
1616
* [小挑战](12-challenge.md)
1717
* [后记](13-postscript.md)

0 commit comments

Comments
 (0)