《Django 5 By Example》读后感
一、 为什么选择这本书?
本人的工作方向为Python Web方向,想了解下今年该方向有哪些新书出版,遂上packt出版社网站上看了看,发现这本书出版时间比较新(2024年9月),那就它了。
从2024年11月11日至2024年12月18日期间,花了 22 天阅读完《Django 5 By Example》(《Django项目实例精解》)。
二、这本书写了什么?
这本书通过 博客系统(mysite,第1-3章),书签系统(bookmarks,第4-7章),购物网站(myshop,第 8-11 章),在线学习网站(educa,第12-17章)介绍了 Django 在项目开发中的使用。
三、这本书特点
1.优点
本书出版时间比较新,跟着书上的代码敲可以确保代码能正确运行,不需要怎么修改。同时,对知识点给出了对应的文档,例如:p19,You can find more information about how to define indexes for models at https://docs.djangoproject.com/en/5.0/ref/models/indexes/。
2.缺点
这是一本让我读起来很痛苦的书,这是一本700 多页书,读完后有一种“我花了那么多时间,收获却很少”的感觉。下面展开详细介绍:
(1)量使用 template 和 django-admin。
对于 template,在今天,前后端分离是必然的趋势,在实际的开发中,大部分的 web 开发都是前后端分离,一般是小公司或者小项目迫于人员的要求才使用 template。但是作者却在书中大量的使用的 template,可想而知,你学了这些,但是实际工作中却用不到,那意义在哪呢?
对于 django-admin,从我经历的两家使用 Django 框架的公司来说,都没有使用到,虽然样本数很少,但是功能上来说,django-admin 功能有限,很难有大的发挥,作为演示,个人觉得不错,问题依然是作者几乎整本书都是使用 django-admin,我不知道这样的意义在哪里。
(2)充斥大量无意义的形容词,啰嗦。
“This will offer you a solid introduction to Django’s capabilities and functionalities.”——去掉了solid对阅读完全没有影响。
又如“Blogging is the perfect starting point to build a complete Django project, given its wide range of required features, from basic content management to advanced functionalities like commenting, post sharing, search, and post recommendations. ”——perfect,wid,required等,如果为了吸引读者在序言中使用可以理解,但都已经开始coding了,属实无法理解。
Online learning platforms are a great example of applications that require tools for advanced content handling.——great, advanced 这些形容词非常模糊,完全没有必要,什么叫great example?前面 11 章的 example 是不是 great example? 什么叫 advanced content handling?
从上面的三段话中就可以体会到作者的风格:啰嗦。很多内容就鸡肋——言之无物,取值可惜。
(3)先写代码,再展示原型
我不知道这本书的排版为什么是这样,例如 p184 页的修改密码:

正常情况是我们先有这个界面(原型),然后才进行开发。但是书中的排版是反过来的,先“哐哐哐”一顿猛击键盘输出代码,然后告诉你打开xxx地址,我们可以看到这样一个界面。可是你不知道原型怎么设计,怎么知道 template 怎么开发呢?
(4)缺少对比与分析
作者在书中同时使用了 Redis 与 Memcached 作为缓存,那么读者自然就有问题了,那么在实际项目中我们应该使用哪个?很遗憾,我没有看到作者的分析。
四、这本书适合什么样的人?
正如作者在自序(preface)中所说:“This book should serve as a primer for programmers newly initiated to Django. The book is intended for developers with Python knowledge who wish to learn Django in a pragmatic manner.(本书可以作为刚接触 Django 的程序员的入门读物。本书适用于想以实战的方式学习 Django 的 Python 开发人员。)”,本书适合对 Django 有所了解,同时想通过项目去掌握Django的新手。
这本书的重点在于讲解 example, 不是讲解 Django。
五、推荐指数
按照5 星的标准,本书推荐指数 2 颗星。
六、参考资料
1. 编程
(1) Antonio Melé,《Django 5 By Example》:https://book.douban.com/subject/37007362/
2. 英语
(1) Etymology Dictionary:https://www.etymonline.com
(2) Cambridge Dictionary:https://dictionary.cambridge.org

欢迎搜索及关注:编程人(a_codists)
《Django 5 By Example》读后感的更多相关文章
- 《DevOps软件架构师行动指南》读后感
从软件架构师视角讲解了引入DevOps实践所需要拥有的技术能力,涵盖运维.部署流水线.监控.安全与审计以及质量关注,这是本书一开始内容简介的开头,本书的作者是伦恩·拜斯(Len Bass).英戈·韦伯 ...
- nodejs开发指南读后感
nodejs开发指南读后感 阅读目录 使用nodejs创建http服务器; supervisor的使用及nodejs常见的调式代码命令了解; 了解Node核心模块; ejs模板引擎 Express 理 ...
- DevOps:软件架构师行动指南(文摘)
第一部分 背景 第1章 DevOps是什么 第二部分 部署流水线 第三部分 横切关注点 第四部分 案例研究 第五部分 走向未来
- 2020年DevOps工程师入门指南
DevOps兴起于2010年代,到现在DevOps已经在行业中拥有了一席之地,并在继续发展壮大. 有兴趣成为一名DevOps工程师吗?如果想要成为一名DevOps工程师,需要做到以下五点: 要有开发者 ...
- 5月29日 Java性能调优指南 读后感
并行垃圾收集器 串行垃圾收集器 并发标记清除(CMS)垃圾收集器 Garbage First(G1)垃圾收集器 没有深入的学习G1的原理,只是看了大概的思想; SA工具:待学习
- 敏捷开发、DevOps相关书籍——书单
自己瞎整理的一些书单,都是豆瓣评分比较高的书,可以作为选择的一个参考. 书名 豆瓣链接 持续交付:发布可靠软件的系统方法 https://book.douban.com/subject/6862062 ...
- 有奖试读—Windows PowerShell实战指南(第2版)
为什么要学PowerShell? Windows用户都已习惯于使用图形化界面去完成工作,因为GUI总能轻易地实现很多功能,并且不需要记住很多命令.使得短时间学会一种工具成为可能. 但是不幸的是,GUI ...
- [转载]你所不了解的DevOps
DevOps开发运维训练营 一旦建立了创新的文化,即使那些并非科学家或者工程师的人——诗人.演员.记者——也能以团体的形式,接受科学文化的意义.他们信奉创新文化的概念.他们以促进这种文化的方式投票.他 ...
- 给 DevOps 初学者的入门指南
当我们谈到 DevOps 时,可能讨论的是:流程和管理,运维和自动化,架构和服务,以及文化和组织等等概念.那么,到底什么是"DevOps"呢? 什么是DevOps 随着软件发布迭代 ...
- CI Weekly #3 | 关于微服务、Docker 实践与 DevOps 指南
CI Weekly 围绕『 软件工程效率提升』 进行一系列技术内容分享,包括国内外持续集成.持续交付,持续部署.自动化测试. DevOps 等实践教程.工具与资源,以及一些工程师文化相关的程序员 Ti ...
随机推荐
- `std::packaged_task`、`std::thread` 和 `std::async` 的区别与联系
std::packaged_task.std::thread 和 std::async 的区别与联系 std::packaged_task.std::thread 和 std::async 都是 C+ ...
- 4.3.2 等比数列的前n项和公式
\({\color{Red}{欢迎到学科网下载资料学习 }}\) [ [基础过关系列]高二数学同步精品讲义与分层练习(人教A版2019)] ( https://www.zxxk.com/docpack ...
- 一些git使用命令,误删本地分支,如何找回
1.新建仓库 git init 2.如果要本地更改文件,需要更新到远端. git status # 查看当前文件状态 git add -A # "git add -A" 命令用于将 ...
- C# 的空类型
// 空类型 null int iii; // 默认 0 bool bbb; // 默认 false bool? b; // 空值 null int? i; // 空值 null string str ...
- Android复习(三)清单文件中的元素——>supports-gl-texture、supports-screens
<supports-gl-texture> 注意:Google Play 会根据应用支持的纹理压缩格式对其进行过滤,以确保应用只能安装在可正确处理其纹理的设备上.您可以将纹理压缩过滤用作定 ...
- work中模板、主题、样式集、样式的作用和使用方法
[收藏]Word样式.样式集.主题.模版怎么区分?进来围观学习了~ 我们先来按照层次关系从小到大排序:样式<样式集<主题<模板 接下来,我们按照层次关系从小到大开始了解它们之间的的区 ...
- java工具篇-IDEA
java的开发离不开好的开发工具,这就需要了解集成开发工具idea 背景黑白风格 设置方法File–>settings–>Appearance & Behavior–>App ...
- 云原生周刊:K8s 的 13 个最佳开源监控工具
开源项目推荐 Silver Surfer 该项目旨在检查 Kubernetes 对象的 API 版本兼容性,并为其提供迁移路径,以便为集群升级做好准备. Actions Runner Controll ...
- 题解:AT_arc182_a [ARC182A] Chmax Rush!
题目传送门 洛谷题解 思路 我们只需要枚举每一个 \(v_i\),对于 \(i\) 后面的 \(v_j\) 如果 \(v_i > v_j\) 进行以下讨论. \(p_i = p_j\) \(p_ ...
- thinkpad x250装manjaro linux,解决指纹和远程桌面问题
前言 家里有个thinkpad x250闲置,平时主要用windows,大概隔一年半年装一次linux看看发展程度. 自己平时用的服务器一般装centos和debian,偶尔是ubuntu. 桌面li ...