前言
是的,你应该开始阅读本书了。
如果读者已经通过《跟老齐学Python:轻松入门》这本书完成了Python入门,那么接下来就要用Python做一些实际项目了,做什么呢?可以做的东西真不少,比如数据统计、爬虫、机器学习、人工智能等,当然还有不可或缺的Web开发。
本书就是要带领读者:
· 学习Django(特别声明,本书中的项目选用Django 2);
· 完成一个项目;
· 边做项目边学知识。
因此,本书按照完成一个项目从易到难的顺序,以项目为主线逐渐展开对Django的学习。Django是一种在Web开发中应用非常广泛的开发框架,它能够让程序员非常快捷地建设一个网站,并且支持网站开发中各种复杂的业务。如果需要快速建设一个网站,并且希望后期还能通过迭代开发实现网站功能和性能的提升,那么Django是一个不错的选择。
Django的官方网站中有不少内容完备的文档,当然,这种完备不是针对初学者而言的。对于初学者来说,也许官方文档太简要了,因此本书的作用就是将初学者领入Django开发的大门,并引导读者熟悉使用Django官方文档。当读者阅读并练习完本书的项目后,就能够使用官方文档进行开发了,本书的目的也就达到了。
本书从始至终贯穿着一个项目实践,将开发实战中常用的Django知识串联起来,因此它不像课本那样按部就班地把每个知识点都罗列出来,而是根据项目需要,将技能融汇在实战之中。此外,如果仅从开发实践的角度学习Django,难免会出现就问题而解决问题的现象,缺少系统和深入的学习。为此,书中的每个小节都配有“知识点”,用以扩展或者系统化有关知识,特别是在“文档导读”中会向读者提供有关网络资料,试图让读者知其然并知其所以然。
在项目进行中,读者可能会遇到暂时无法理解的部分,不要纠结于一时之惑,而要跟着项目继续进行下去,或许到后面就能理解前面的内容了——“发展是硬道理”。
如果正在阅读本书的你是Web开发的初学者,此前没有做过任何网站开发,那么笔者特别建议遵循如下学习方法。
· 严格按照本书要求,将所有代码都认真敲过。不要复制代码(本书提供的源代码,仅仅是一个参考),要自己一个字母一个字母地敲进去。
· 将自己的调试结果与本书所示结果进行对照,看看是否实现了预期的功能。
· 在调试不能通过时,首先要认真检查自己的代码,包括但不限于拼写问题、缩进问题等,若还不能解决,可通过Google搜索该异常(错误),请相信,你的错误别人也同样遇到过。
· 本书所支持的网站www.itdiffer.com和QQ群(26913719)也是读者学习的助手。
· 本书提示读者阅读的官方文档,一定要认真阅读。
· 本书实际上是一个Django项目,项目中包含了多个应用。如果读者按照本书的要求,第一遍就实现了应用的功能,那只能说明本书描述无误且你的阅读能力尚可,并不代表你已经掌握了什么。只有当你把刚刚调试通过的应用删除,然后完全靠自己的记忆和理解,同样实现了该应用的功能,才能说明你掌握了相关知识技能。再次强调,要理解相关内容,就必须多重复几遍。
因为本书是以“项目为主线”的,所以不会面面俱到地将Django的所有内容介绍一遍,而是根据项目的功能需要,有选择地使用和介绍有关内容。对于具体功能的实现,书中所给出的代码也非唯一写法,读者可以使用其他更好的方式实现。
在实际的Web开发项目中,除使用Django框架外,还会用到HTML、CSS、JavaScript等知识,从而做出一个看起来有点设计感的页面。虽然说“人不可貌相”,但使用Django做出一个漂亮的前端,还是能够让人感觉很舒服的。因此,书中也涉及一些前端内容,读者在阅读时,如果缺少相关知识,可以实时补充。当然,前端知识并不是学习本书所必备的,因为凭借读者的聪明才智和无所不包的网络,掌握应付本书所需要的前端知识是非常容易的。
读者可以在GitHub上(https://github.com/qiwsir/DjangoPracticeProject)获得本书的所有代码,这些代码是最终结果,希望不会给读者的学习带来不便。
感谢为本书的面市提供帮助的编辑们,感谢我的妻子在本书编写过程中提供的支持。
齐伟
2018年8月