1.1.1 Django的版本选择

截止到本书的写作日期,GitHub上Django项目的最新版本是3.1.2。相比于统治地位的Django 2,Django 3尚处于功能完善的初期,代码中的隐藏bug较多,并不适合直接在生产环境中使用。此外,笔者完整对比了Django 2.2和Django 3的最新源码,二者相比,目录结构以及功能模块并没有太大变化,只是Django 3在某些操作中加入了异步调用并调整了一些代码细节,代码的整体结构及一些核心思想仍旧兼容Django 2.2。因此读者在掌握Django 2.2的核心源码后,即可迅速看懂Django 3的源码内容。目前,Django 2仍是Python Web开发的主流选择,其最新版本已更新至2.2.16。因此,基于最新的Django 2.2版本讲解Django源码较为合适。GitHub上的Django版本如图1-1所示。

此外,Django 2已全面拥抱Python 3,这也是笔者选择剖析Django 2源码的原因之一。从Django 2的源码中能学到许多Python 3的高级用法和一些经典的设计模式,而不必考虑兼容Python 2。可以说,Django 2源码是深入学习Python 3的宝藏。

图1-1