前言
写作本书的初衷
不知不觉间我已经大学毕业快十年了,从刚毕业踏入软件开发行列算起,大大小小的项目也参与或主导了不少,从最开始的职场新人到能够指导别人做项目,这期间经历了太多事情,也有过太多的曲折。
生活中经历过的每一家公司、合作过的每一个同事都给予我不同的成长经验。作为一名标准的程序员,我也有过加班熬夜只为了解决一个技术问题的狂热,我也会接一些私活而不是为了能够挣多少钱,只为了多一些提升自身技术水平的机会。记得刚毕业的时候,我经常去51aspx、蓝色理想论坛等下载源码,把它们一一看透并用自己的方式实现。当我还沉浸在这种技术学习方式的时候,老同事贺春波的一句话如当头棒喝一样使我为自己定下一个新的目标,那就是要做出一款自己的产品或出版一本自己的书。记得当时我们聊到软件开发的时候,我说:“我正在开发一个Web应用框架,希望这个框架能够做到尽可能通用,这样当我再接私活的时候就可以不用再做很多重复的工作了。”贺春波说:“框架是一个很好的东西,很多开发人员都会做,也都做过,但是真正能做出来的人很少,这也是很多开发人员的通病:做事不能坚持。”当时我就在想,是呀,我都已经为自己定过多少个目标了?单就开发Web应用框架这一件事情,我就做了好几次,每次都是做一点就放弃了。难道当我工作很多年之后,回忆自己的成长历程时,留下的记忆只能是那些做了一半的半成品吗?难道就像那个笑话说的:本人能够熟练书写JavaScript、C++、Java、C#吗?
在我的内心中一直有两个目标:开发一款个人应用和出版一本个人书籍。这两件事情对我来说都不简单,开发应用程序一定要有真实的使用场景,能够为具体人群解决实际问题,也正因为如此,这件事情迟迟没有开始。第二件事情相对简单多了,每一个开发人员都曾学习过很多种技术,每一种技术又有很多细分领域。这些细分领域的学习过程就是从陌生到熟练的过程,每一个感悟都是后来者的宝贵经验,而这些细分领域往往又缺少足够的中文资料,如果我能够把自己的学习历程记录下来,一定能够为后来者提供帮助与借鉴。
再者,开发人员的一个通病就是碎片化学习,尤其是当前知识大爆炸的时代,可以通过很多途径学习知识,例如网络论坛、技术大牛的个人博客、头条推送的技术文章等。通过这种途径所学习到的知识都是零散的,以此不能使我们成为技术大牛。我也有成为技术大牛的梦想,但是一直以来浑浑噩噩,直到开始学习Django,我想是时候完成自己的一个小目标了,这就是把我的学习经历记录下来,汇总成一本书,使每一位新接触Django的人都能从我的书中得到帮助,同时通过系统的学习使我本人能够更深入地理解Django。
读者对象
·Django框架的使用者和爱好者;
·初级Web开发爱好者;
·Python开发人员以及运维人员;
·大中专院校学生。
如何阅读本书
按照循序渐进的学习方法,本书共分为三部分:
第一部分为Python基础,简单介绍Python语言的特性并给出相应的代码示例,非常适合初学者或者没有Python语言开发基础的读者入门学习。
第二部分为Web编程基础,这部分包含HTML基础、CSS基础、JavaScript基础和MySQL基础等,通过学习这部分内容,可以使读者整体了解Web开发技术。
第三部分为Django框架,详细介绍Django框架的具体内容,针对每一个知识点都给出具体代码示例,可以使读者快速认识Django。
本书各部分相对独立,如果读者非常了解Python语言或者Web编程基础,那么可以跳过第一部分或第二部分,直接开始第三部分Django框架的学习,但是前两部分仍然可以作为工具使用。对于Python语言的初学者或者Web开发初学者,强烈建议从第1章开始学习,并跟随本书完成全部示例代码。
致谢
从开始着手写书到完成,差不多过去了半年时间,回顾这半年的经历真的是感慨万千,很难想象我居然能够坚持下来,这半年中很多个夜晚都是在调试代码中度过的,对于书中的每一个示例都要保证能够调试通过,这真的不是一件简单的事情,还好最终坚持了下来。忆苦思甜的同时还要感谢以下单位以及个人对我的帮助。
首先,要感谢的就是清华大学出版社,是他们给了我这个机会,接收我的作品,并以严谨的态度为我进行审稿排版,使本书能够以更高的质量呈现在读者面前,感谢每一位编辑老师在本书出版过程中的辛勤付出。
其次,要感谢我的大学:北京建筑工程学院,现在的北京建筑大学。虽然她不是一所重点大学,但是学校中的很多老师都给过我热心的帮助,使我能够顺利完成学业。这其中要着重感谢几位老师,他们是:翟伟老师、詹宏伟老师、田芳老师、张翰涛老师和魏楚元老师。他们在我心中永远是最优秀的人民教师。
另外,还要感谢我的研究生院校:北京大学医学部。北京大学医学部虽然不是一所计算机类院校,同时在学校的学习过程中也没能在计算机技能方面给予我任何帮助,但是通过在这里的学习加强了我做学问的严谨性,使我能够严格约束自己,这在写作本书的过程中得到了体现。每当我坚持不下去的时候,都能想到我的导师简伟研老师的教导,非常感谢他。
还要感谢工作中的同事和领导,如第一家公司的直接领导李子佳经理。李子佳是我毕业后参加的第一份工作的直接领导。那个时候的我可以说是一张白纸,技术功底欠缺,在李子佳以及其他同事的帮助下,我的技术水平得到快速提升,这也为我后来的发展打下了坚实的基础。还要感谢现在的公司亚帝文软件(北京)有限公司,这是一家开放友好的技术公司,公司中有很多技术高手,在这里我得到了很多学习机会。
最后要感谢Django项目组、W3School、runoob.com以及众多的国内技术论坛为我完成本书提供了大量素材。
谨以此书献给我最爱的家人、朋友,以及广大Django爱好者!
李健