《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)
浙公網安備 33010602011771號