一、 为什么选择这本书?

本人的工作方向为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》读后感的更多相关文章

  1. 《DevOps软件架构师行动指南》读后感

    从软件架构师视角讲解了引入DevOps实践所需要拥有的技术能力,涵盖运维.部署流水线.监控.安全与审计以及质量关注,这是本书一开始内容简介的开头,本书的作者是伦恩·拜斯(Len Bass).英戈·韦伯 ...

  2. nodejs开发指南读后感

    nodejs开发指南读后感 阅读目录 使用nodejs创建http服务器; supervisor的使用及nodejs常见的调式代码命令了解; 了解Node核心模块; ejs模板引擎 Express 理 ...

  3. DevOps:软件架构师行动指南(文摘)

    第一部分 背景 第1章 DevOps是什么 第二部分 部署流水线 第三部分 横切关注点 第四部分 案例研究 第五部分 走向未来

  4. 2020年DevOps工程师入门指南

    DevOps兴起于2010年代,到现在DevOps已经在行业中拥有了一席之地,并在继续发展壮大. 有兴趣成为一名DevOps工程师吗?如果想要成为一名DevOps工程师,需要做到以下五点: 要有开发者 ...

  5. 5月29日 Java性能调优指南 读后感

    并行垃圾收集器 串行垃圾收集器 并发标记清除(CMS)垃圾收集器 Garbage First(G1)垃圾收集器 没有深入的学习G1的原理,只是看了大概的思想; SA工具:待学习

  6. 敏捷开发、DevOps相关书籍——书单

    自己瞎整理的一些书单,都是豆瓣评分比较高的书,可以作为选择的一个参考. 书名 豆瓣链接 持续交付:发布可靠软件的系统方法 https://book.douban.com/subject/6862062 ...

  7. 有奖试读—Windows PowerShell实战指南(第2版)

    为什么要学PowerShell? Windows用户都已习惯于使用图形化界面去完成工作,因为GUI总能轻易地实现很多功能,并且不需要记住很多命令.使得短时间学会一种工具成为可能. 但是不幸的是,GUI ...

  8. [转载]你所不了解的DevOps

    DevOps开发运维训练营 一旦建立了创新的文化,即使那些并非科学家或者工程师的人——诗人.演员.记者——也能以团体的形式,接受科学文化的意义.他们信奉创新文化的概念.他们以促进这种文化的方式投票.他 ...

  9. 给 DevOps 初学者的入门指南

    当我们谈到 DevOps 时,可能讨论的是:流程和管理,运维和自动化,架构和服务,以及文化和组织等等概念.那么,到底什么是"DevOps"呢? 什么是DevOps 随着软件发布迭代 ...

  10. CI Weekly #3 | 关于微服务、Docker 实践与 DevOps 指南

    CI Weekly 围绕『 软件工程效率提升』 进行一系列技术内容分享,包括国内外持续集成.持续交付,持续部署.自动化测试. DevOps 等实践教程.工具与资源,以及一些工程师文化相关的程序员 Ti ...

随机推荐

  1. `std::packaged_task`、`std::thread` 和 `std::async` 的区别与联系

    std::packaged_task.std::thread 和 std::async 的区别与联系 std::packaged_task.std::thread 和 std::async 都是 C+ ...

  2. 4.3.2 等比数列的前n项和公式

    \({\color{Red}{欢迎到学科网下载资料学习 }}\) [ [基础过关系列]高二数学同步精品讲义与分层练习(人教A版2019)] ( https://www.zxxk.com/docpack ...

  3. 一些git使用命令,误删本地分支,如何找回

    1.新建仓库 git init 2.如果要本地更改文件,需要更新到远端. git status # 查看当前文件状态 git add -A # "git add -A" 命令用于将 ...

  4. C# 的空类型

    // 空类型 null int iii; // 默认 0 bool bbb; // 默认 false bool? b; // 空值 null int? i; // 空值 null string str ...

  5. Android复习(三)清单文件中的元素——>supports-gl-texture、supports-screens

    <supports-gl-texture> 注意:Google Play 会根据应用支持的纹理压缩格式对其进行过滤,以确保应用只能安装在可正确处理其纹理的设备上.您可以将纹理压缩过滤用作定 ...

  6. work中模板、主题、样式集、样式的作用和使用方法

    [收藏]Word样式.样式集.主题.模版怎么区分?进来围观学习了~ 我们先来按照层次关系从小到大排序:样式<样式集<主题<模板 接下来,我们按照层次关系从小到大开始了解它们之间的的区 ...

  7. java工具篇-IDEA

    java的开发离不开好的开发工具,这就需要了解集成开发工具idea 背景黑白风格 设置方法File–>settings–>Appearance & Behavior–>App ...

  8. 云原生周刊:K8s 的 13 个最佳开源监控工具

    开源项目推荐 Silver Surfer 该项目旨在检查 Kubernetes 对象的 API 版本兼容性,并为其提供迁移路径,以便为集群升级做好准备. Actions Runner Controll ...

  9. 题解:AT_arc182_a [ARC182A] Chmax Rush!

    题目传送门 洛谷题解 思路 我们只需要枚举每一个 \(v_i\),对于 \(i\) 后面的 \(v_j\) 如果 \(v_i > v_j\) 进行以下讨论. \(p_i = p_j\) \(p_ ...

  10. thinkpad x250装manjaro linux,解决指纹和远程桌面问题

    前言 家里有个thinkpad x250闲置,平时主要用windows,大概隔一年半年装一次linux看看发展程度. 自己平时用的服务器一般装centos和debian,偶尔是ubuntu. 桌面li ...