2.2.2 Django框架核心组件
Django的核心组件如下:
1.对象关系映射:在开发初期用于创建模型
2.管理界面:可以为最终使用的用户设计很美观的界面
3.URL设计:Django中的URL设计不会直接与Python的源码进行关联,而是以非常灵活的方式将相同的应用服务映射到不同的路径下
4.友好的模板语言:Django能够使用模板内置的函数,并且能够移植到不同的平台上
5.缓存系统:Django的缓存框架是非常健壮的,它提供不同粒度的分级的缓存,比如针对某个特定view的缓存,或者是某个程序片段或整个网站的缓存
2.2.3 Django的MVC架构
Django框架是基于MVC构造设计的。在Django中,框架会自动处理用户输入的对控制器的指令,所以Django更关注的是模型(Model)、模板(Template)和视图(Views),即MTV模式。它们各自的职责如下表2-1所示:
表2-1:MTV设计模式各层功能
层次 职责
模型(Model),即数据存取层 处理与数据相关的所有事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。
模板(Template),即表现层 处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。文献综述
视图(View),即业务逻辑层 存取模型及调取恰当模板的相关逻辑。模型与模板之间的桥梁。
从以上表述可以看出,Django的view层不进行用户输入的处理,只是会呈现需要展示给用户的数据。Django的template层负责管理怎样呈现Django的view层指定的数据。或者说,Django将MTV中的视图进一步分解为Django视图和Django模板两个部分,分别决定“呈现哪种数据”和“怎样呈现”,这样一来用户可以根据自己的需要随时替换Django的模板可,而不是局限于内置的模板[11]。
作为MVC的控制器,通过URL配置Django框架可以实现这一功能。URL配置机制使用正则表达式匹配的URL,然后调用相应的Python的模板函数。URL配置中没有URL任何限制的规则,你可以设计任何URL到风格,无论是传统的,基于REST,或者其他替代的方式,都是可行的。
框架把控制层给封装了,无非与数据交互这层都是数据库表的读,写,删除,更新的操作.在写程序的时候,只要调用相应的方法就行了,感觉很方便。程序员把控制层东西交给Django自动完成了。只需要编写非常少的代码完成很多的事情.所以。它比MVC框架考虑的问题要深一步.因为我们程序员大都写程序在控制层。现在这个工作交给了框架,仅需写很少的调用代码,大大提高了工作效率。
2.2.4 Django设计思路
Django的主要目的是简单的,是为了数据库驱动的网站的快速发展。它强调代码复用,多个组件可以很容易地在服务于整个框架形式的“插件”,Django包含有很多强大的第三方插件,你甚至可以轻松开发自己的工具包。这使得Django具有高度可扩展性。它还强调了快速开发和不要自我重复的原则。
Django基于MVC的设计十分优美:
1. 对象关系映射 (ORM,object-relational mapping):以Python类形式定义你的数据模型,ORM将模型与关系数据库连接起来,你将得到一个非常容易使用的数据库API,同时你也可以在Django中使用原始的SQL语句。
2. URL分派:使用正则表达式匹配URL,你可以设计任意的URL,没有框架的特定限定。像你喜欢的一样灵活。
3. 模版系统:使用Django强大而可扩展的模板语言,可以分隔设计、内容和Python代码。并且具有可继承性。