Django介绍:
Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的框架模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。
要是以后我能发明一种框架,我一定要用自己的名字来命名,以免我被淹没在历史的洪流里.
在学习Django的时候和一些搞Java开发的同学聊过几次,他们经常抱怨外包到华为天天写控制器,当时我挺羡慕的,控制器多高端啊,其实现在想起来我应该是忽略了天天这两个字,但是学了之后也没那么高端,至少没有Python的scipy那几个模块高端.
师从MVC:
Django的框架模式从本质来说依然是经典的MVC,就来看看MVC这个Web开发大佬是如果运作的.
我就按照自己的理解来说一下这个moderl-view-controller,即模型-视图-控制器
Model: 这一块是直接与数据库相关的,也就是模型对象负责在数据库中存取数据
View: 这一块负责数据的显示和呈现,数据呢,肯定是从model那里来的,数据展示在哪里?通过html页面来进行展示,不过现在应该不仅限于html.
Controller: 这一块负责人机交互,从用户端收集用户的输入,进行业务逻辑处理.
模式图奉上:

核心思想: 将输入,处理,输出分开,即解耦
不逊色的MVT:
我喜欢称Django的框架模式为变异的MVC,但归根结底也是继承于MVC,我本来就对控制器不是太了解,要是我精通Java就好了,这下好了,Django直接就没有控制器这一说法.
Moder-View-Template,即模型-视图-模板,从字面上感觉像是用模板来替代了控制器,但并不是
Model: 作用与MVC的model一样,负责与数据库的连接,进行数据的存取
View: Django的View活动范围就有点广,他首先负责业务逻辑,然后还要调用Moder和Template,它并不像MVC的视图那样为用户呈现数据.
Template: 模板的功能与MVC的视图一样,负责进行页面的渲染展示给用户
Django还有个特别的url分发器,作用和路由器差不多,所有也称之为路由,作用是通过页面传回的url来调用合适的view.