前言 FOREWORD
Django是什么
Django是基于Python的一款非常成熟的Web开发框架,它功能强大,开发便捷。很多知名网站都是利用Django开发的。Django可插拔式模块的思想及前/后端内容分离的机制,使它具有简单灵活、开箱即用的特点,应用Django使设计、开发、测试、应用等变得便捷高效。
随着互联网技术和Python的发展,Django的功能也与时俱进、越来越“热”,国内将会有更多的企业和程序员选择Django来提高Web开发效率,利用Django开发的大型网站也会越来越多。
笔者的使用体会
Django是一个开放源代码的Web开发框架,开源可以让程序员在实践中解决一些开发中遇到的痛点、难点,并且不断提供优秀的解决方案,不断优化代码结构。这种开放、基于实践的基调让Django持续发展、迅速成长。Django为程序员提供了较好的体验,它负责处理网站开发中较麻烦的部分,使程序员可以专注于编写应用程序业务逻辑代码,而无须重新开发Web应用的通用功能,即所谓的“不重复造轮子”。
笔者刚接触Django时,就有一种相见恨晚的感觉,它的开发语言Python那么简洁、直观,近似于自然语言。使用Django开发更如“行云流水”,只要配置好路由,找一个好的模板文件,然后在视图函数中按需求写代码,一个安全、“优雅”的网站就诞生了,不用管服务器如何接收请求,也不用管服务器如何把结果发回浏览器。当然你还可以精进,深入学习研究,开发出管理复杂事务、功能更加强大的系统,这些Django都为你想到了。
难道只有这些特点?不,Django可以无限扩充,它可以让你写的组件、第三方模块或组件融入应用系统中,让你开发的系统功能丰富且强大;它可以帮你实现Web系统中几乎所有的功能,如果有些功能你暂时写不出来,那可以借鉴他人写的组件来实现;并且Django开发的应用项目在当今主流操作系统上都能顺畅运行。
写作目的
阅读本书可以让读者尽快掌握Django,以便能将其应用到开发工作中。程序员的工作和学习经验告诉我,一本讲解计算机程序开发的书如果只是把各种知识罗列出来,“一本正经”地介绍语法,没有突出重点,没有介绍知识的应用场景,就会让各种知识变得散乱且难以记忆。这样的书读过之后如“水过地皮湿”,到了开发实战中根本不知道如何灵活应用。
作为一名程序员,我知道应如何向程序员讲授Django的理念、知识和应用,本书把技术细节放在每个应用场景与开发样例中,力求使Django变得易于理解和掌握。
每一名程序员都要有不断接受新技术并进行终身学习的勇气与习惯,本书会尽力告诉你需要学习什么才能快速、全面地掌握Django的知识。如果你可以快速、轻松地阅读本书,最后逐渐喜欢上Django开发,那将使我感到非常荣幸。
本书内容
按照Django学习路线,我们把全书分为3篇,共16章。
准备篇:简要介绍Python和Web开发框架的原理,介绍Django的主要特点、安装部署,对Django的MTV设计模式进行简析,最后对Django基本开发流程进行了说明。这主要是让读者对Django有整体印象。
入门篇:对Django中几个重要的开发技术进行讲述,包括Django的ORM、路由系统、视图、模板系统、Form组件等内容。在介绍这些技术时,以开发样例为主线,结合样例进行知识点的讲解。学完这些技术,读者便有能力构建和部署一个简单的网站。此外,介绍了图书管理系统和博客系统的开发过程。
进阶篇:介绍分页组件的设计、Django调用AJAX编程的方法、中间件代码编写方式和运行顺序。第13章和第14章介绍实现权限管理的两种方式。一种是基于Django认证系统建立的权限管理,这种方式可以充分利用Django原生的管理后台和认证系统的资源,减少开发工作量。另一种是基于RBAC的通用权限管理,这个是完全自定义开发,优点是可定制性强、应变能力强。然后第15章介绍了车费管理系统的设计开发,第16章介绍了应用项目在生产环境中的部署过程。
注:书中的邮箱为虚拟的邮箱地址。