说起Django框架,肯定需要首先明确一个概念,即软件框架。下面就是第一个问题:
1 软件框架(software framework) 1.1 概念界定软件框架:通常指的是为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品。
==软件框架是具有基础功能的软件产品==:
基础功能:可以理解为为了满足某类业务场景而设定的功能。
软件产品:软件框架是为了针对某一类软件设计问题而产生的。
1.2 形象理解其实可以将软件框架想象成一个公司,公司中有各个职能部门,每个部门各司其职,通过部门之间的配合来完成工作,这些部门就形成了一个公司的组织架构。
软件框架也是如此,只是说一个公司,它是针对某一市场而成立的,而软件框架的设计是针对某一类软件问题而设计的,==其目的主要是提高软件开发效率==。
软件框架是由各个模块组成,各个模块都会有不通特定的功能。模块与模块之间相互配合来完某软件的开发。
在介绍完软件框架是什么之后,就需要研究一下具体的框架模式,这里介绍下MVC框架模式:
2 MVC 2.1 框架、设计模式、架构笔者曾很困扰于这问题,查找了很多相关文字,作下总结和体会表述:
基本概念:
框架通常是代码重用;
设计模式是设计重用,其只有实例化之后才能用代码表示;
框架则介于两者之间,部分代码重用,部分设计重用,有时分析也可重用。软件架构师在制作软件的时候、对软件规划的一种蓝图、一般是分层、画出各个组件的关系。
比较:
框架与架构:架构偏于设计,框架偏于技术;
框架较之架构更具体更加聚焦于具体业务场景,一个架构可以通过多种框架来实现。
框架与设计模式:设计模式较框架是更小的元素,更抽象;
一个框架中往往含有一个或多个设计模式,框架总是针对某一特定应用领域(比如说Django就是只针对web开发),但同一模式却可适用于各种应用。二者共同致力于重用,因而思想可以互相借鉴。
架构与设计模式:
设计模式是用于解决一种特定的问题,范围较小;架构针对体系结构进行设计,范畴较大。一个架构中可能会出现多个设计模式来结果架构中的问题。
逻辑思考顺序:
在做一个项目的时候,首先设计出来的应该是架构,然后再来考虑运用什么框架和设计模式。不过平时遇到的都不是特别复杂的系统,用一些框架和设计模式足矣。
2.2 前世今生 2.2.1 前世(1)Model(模版)-View(视图)-Controller(控制器)
最初是一种软件设计模式,是为了将传统的输入(input)、处理(processing)、输出(output)任务运用到图形化用户交互模型中而设计的;
随后,MVC的思想被应用在了Web开发方面,被称为Web MVC框架。
(2)
MVC的产生理念: 分工。让专门的人去做专门的事。
MVC的核心思想: 解耦。让不同的代码块之间降低耦合,增强代码的可扩展性和可移植性,实现向后兼容。
(1)web mvc框架图
(2)具体功能介绍
M全拼为Model: 主要封装对数据库层的访问,对数据库中的数据进行增、删、改、查操作。
V全拼为View:用于封装结果,生成页面展示的html内容。
C全拼为Controller:用于接收请求,处理业务逻辑,与Model和View交互,返回结果。
介绍完相关基础概念后,下面对就Django框架进行整体逻辑和具体流程的了解:
3 Django整体逻辑 3.1 简介主要目的是简便、快速的开发数据库驱动的网站
强调代码复用,多个组件可以很方便的以"插件"形式服务于整个框架,Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。
具有很强的可扩展性。
Django框架遵循MVC设计,并且有一个专有名词:MVT
3.2 MVT