免费赠书为什么要学习Django?

Posted Python那些事

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了免费赠书为什么要学习Django?相关的知识,希望对你有一定的参考价值。


Django这个词对一些人来说或许并不陌生,有一部荣获第85届奥斯卡金像奖的影片叫做Django Unchained,中文名被翻译为《被解救的姜戈》,这或许是Django首度被翻译为中文。但是,作为网站开发框架的Django跟这部电影没有任何关系。


Django简介


般认为Django开发框架(简称Django)诞生的时间是2003年的金秋时节。此时千年古城苏州正桂花飘香,而大洋彼岸的美国有两位程序员在使用后来被冠名为Django的框架做网站开发,这是全世界首次使用。让我们感谢这两位程序员,他们是Adrian Holovaty和Simon Willison。2008年虽然遇到了金融危机,但依然挡不住技术的进步,Django有了自己的DSF(Django Software Foundation),后来Django的发展就由这个基金会来主导了。



对于Django的评价,如果借用李清照的《鹧鸪天·桂花》来表达,我认为是非常恰当的。


暗淡轻黄体性柔。情疏迹远只香留。何须浅碧深红色,自是花中第一流。

梅定妒,菊应羞。画栏开处冠中秋。骚人可煞无情思,何事当年不见收。


“自是花中第一流”,不仅仅是现在,未来依然蓬勃发展。在Django官方网站披露的信息中,可以看到其发展蓝图,如下图所示。


【免费赠书】为什么要学习Django?



关于Django的特点,用官方网站(https://www.djangoproject.com/)上的大标题就可以概括了:“Django makes it easier to build better Web apps more quickly and with less code”。展开来说,就是如下几点:


  • 容易上手,开发速度快;

  • 囊括了网站开发中的用户管理、内容管理、网站地图、RSS等常用的众多插件;

  •  安全性强,比如Django默认解决了SQL注入、跨站攻击等问题;

  • 应用广泛,类型多样化。使用Django开发的网站包括公司提供的各类在线服务网站、社会组织和政府机构网站等,其类型包括但不限于管理系统、社交网站、计算平台等。


就开发网站的框架而言,除Django外,在Python领域还有Tornado、Flask等,它们各有各的特点,但Django的应用范围最广。


Django的MTV


在动态网站开发中,普遍遵循MVC模式,这种模式最早由TrygveReenskaug在1978年提出,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件架构。MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。


MVC(Model-View-Controller)模式就是把数据存取逻辑、业务逻辑和表现逻辑组合在一起的模式。在MVC模式中,Model代表数据存取层;View代表系统中选择显示什么和怎么显示的部分;Controller是系统中根据用户输入和需要访问模型,以决定使用哪个视图的部分。MVC模式已经成为网站开发的共识,Django更不例外,也遵循这种模式,或者说Django是一种MVC的框架,具体表现如下。


  • M:数据存储和读取部分,由Django的数据模型部分承担。

  • V:确定要显示哪些数据及如何显示,由视图和模板进行处理。

  • C:根据客户端请求映射到相应的视图,由Django框架根据URLconf设置,调用相应的函数。


在Django中,Controller部分事实上是由框架自动处理的,不需要开发者做什么,于是Django就转变为模型(Model)、模板(Template)和视图(Views)三部分了,可以称之为MTV模式。


  • M:模型(Model),即数据存取层,模型是网站项目的基础,主要负责处理与数据相关的事务,如读取、写入数据等。

  • T:模板(Template),即表现层,处理与表现有关的事务,例如如何在页面中显示相关内容。

  • V:视图(Views),即业务逻辑层,包含存取模型及调取相应模板的相关逻辑,是M(模型)和T(模板)之间的桥梁。当Django得到用户的请求后,根据URL映射关系调用相应的视图,视图则调用和处理有关数据。与模板相比,视图确定访问者能看到哪些数据,而模板确定怎么看到这些数据(或者说用什么方式看到这些数据)。


如下图所示是Django对一个HTTP请求响应的流程图。


【免费赠书】为什么要学习Django?


从下图中可以看到不少“中间件”,这是Django的核心,所有的请求、返回命令都由中间件来完成。这些中间件被定义在settings.py的MIDDLEWARE_CLASSES中。


Django核心理念


Django是一个开发框架,并且是有理念的开发框架,正是因为一直遵循这些理念,才使得它发展迅速,被众多开发者广泛接受。


  • 更Python化。Django是用Python编写的,它的很多约定也遵循Python的规范,有Python开发经验的用户能够很容易从事Django开发。

  • DRY。这是很重要的原则,即Don’trepeat yourself(不要重复自己)。这个原则可以作为所有程序开发的原则,但做起来真的有点难度。Django中通过某些方式,在这方面做得相当不错,比如允许在数据模型中创建方法实现某些针对该模型实例的常见操作。读者在参照本书中的项目进行实践的过程中,要牢记该原则,并领会其含义。

  • 松耦合与灵活。Django使用MTV模式,实现了数据库访问、业务逻辑、模板显示等层面的松耦合和各自的灵活操作。在模板系统层面,如果用户不喜欢Django的模板系统,可以使用其他的模板系统;在数据库层面,用户可以自由地配置多种数据库,当然也可以不用Django封装的数据库API,而是通过SQL语句直接操作数据库。不过,在本书的示例中,这些事情笔者都不做,只是告诉读者可以不遵循Django默认的任何东西,可以根据自己的需要自定义。

  • 快速开发。这是非常重要的,Django在不同层面上都提供了快速开发所需要的工具,比如通用视图,能够非常简单地组建一个网站。关于快速开发,在读者跟随本书项目逐渐展开的过程中,会有深刻体会。


上面列出了Django的几个核心理念,对于这些理念的理解,还需要读者在实践中体会。


以上内容选自《跟老齐学PythonDjango实战》。想要了解更多的Django技术及Python实现吗?可以点击阅读原文来订购哦。



内容提要


《跟老齐学Python:Django实战》是以Python为基础进行Web应用开发的进阶读物。书中以一个实例项目为主线,在实践中边学边做,理论联系实际。每节都配有思维导图,使读者对项目需求一目了然;每章都有知识点和文档导读,引导读者“知其所以然”。相信认真阅读本书的读者,不仅能够得到“鱼”,更能得到“渔”,从而具备独立开发的能力。《跟老齐学Python:Django实战》适合已经具有Python基础技能、进行Web应用开发的读者。如有此意愿,但尚缺乏Python基础技能者,推荐阅读《跟老齐学Python:轻松入门》。


福利来了


本次小编特意拿出 5 本书作为福利赠送给关注Python那些事的小伙伴们,特别感谢博文视点的赞助与支持。赠书规则:1、大家可以在留言区留言评论自己想要这本书的理由或者是评论某项Python技术,小编将从留言区选择最受欢迎的3位赠书;2、剩余2本书将从留言中选择我最喜欢的回复,大家可以随意发挥。由于留言区数目有限,会筛选放出认真有价值的评论。截止日期为10月13日 22:00。中奖的小伙伴届时我会在留言区回复。


看完本文有收获?请转发分享给更多人

关注「Python那些事」,做全栈开发工程师

点击阅读原文可以订购哦!

以上是关于免费赠书为什么要学习Django?的主要内容,如果未能解决你的问题,请参考以下文章

免费赠书 | 推荐 3 本 Python 新书

「文末赠书」http协议简介看这篇就够了

免费赠书贝叶斯分类器的实现

赠书 | 干货!用 Python 动手学强化学习

为什么深度神经网络这么难训练?| 赠书

新书推荐|《AI嵌入式系统: 算法优化与实现》(免费赠书)