《Building REST APIs with Flask》读后感
一、 为什么读这本书?
之所以选择这本书其实是因为最近自己在梳理 JWT 的用法。自己曾参与过的一个项目虽然使用的是 Flask 开发,但是授权使用的 PyJWT,当时以为使用 PyJWT 是行业通用选择,就没有去过多了解。后面发现有人对 PyJWT 进行了封装,造了一个 Flask-JWT-Extended,所以想了解下“在 Flask 项目中,选择Flask-JWT-Extended,还是 PyJWT?”,刚好这本书有提到,所以就打算读一读。
二、这本书写了什么?
从2025年6月25日至2025年6月30日,期间断断续续花了6天阅读完《Building REST APIs with Flask》。
该书介绍了两个项目:flask-mysql,author-manager,通过这两个项目介绍 Flask 的基本用法,开发 REST APIs 的流程。flask-mysql 介绍了如何在 Flask 项目中集成数据库。author-manager 介绍了注册登录功能,CRUD操作、项目部署。
当然,虽然看完了这本书,但也没找到“在Flask项目中,选择Flask-JWT-Extended,还是 PyJWT?”这个问题的答案,因为作者也没有说。
三、这本书特点
1.简短。
“简短”可能是这本书的唯一优点了,200多页,两个项目。遇到问题的时候,代码改起来不至于太困难。
2.问题很多。
p41, 一个一个判断需要修改的参数,这种风格不好,如果参数很多的时候就很麻烦。
p42, 代码中无异常处理。
@app.route('/authors/<id>', methods = ['DELETE'])def delete_author_by_id(id):get_author = Authors.query.get(id)db.session.delete(get_author)db.session.commit()return make_response("",204)
p79, 日志的设置不是规范的做法,过于随便。
logging.basicConfig(stream=sys.stdout,format='%(asctime)s|%(levelname)s|%(filename)s:%(lineno)s|%(message)s',level=logging.DEBUG)
p91,使用 JWT 进行认证时只有 access_token, 没有 refresh_token。
还有很多很多问题,这里就不一 一列举了。
四、这本书适合什么样的人?
鉴于书中问题较多,同时这本书是 2019 年写的,现在是 2025 年了,大部分内容已经过时了,所以不推荐阅读。
五、推荐指数
按照5 星的标准,本书推荐指数 1 颗星。
六、参考资料
1. 编程
(1)Kunal Relan: https://book.douban.com/subject/34825401/
(2)源码: https://github.com/Apress/building-rest-apis-with-flask
2. 英语
(1) Etymology Dictionary:https://www.etymonline.com
(2) Cambridge Dictionary:https://dictionary.cambridge.org
欢迎搜索及关注:编程人(a_codists)