MVC设计模式:Model-View-Controller简写。html
最先由TrygveReenskaug在1978年提出,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件设计模式,是为了将传统的输入(input)、处理(processing)、输出(output)任务运用到图形化用户交互模型中而设计的。随着标准输入输出设备的出现,开发人员只须要将精力集中在业务逻辑的分析与实现上。后来被推荐为Oracle旗下Sun公司Java EE平台的设计模式,而且受到愈来愈多的使用ColdFusion和PHP的开发者的欢迎。如今虽然再也不使用原来的分工方式,可是这种分工的思想被沿用下来,普遍应用于软件工程中,是一种典型而且应用普遍的软件架构模式。后来,MVC的思想被应用在了Web开发方面,被称为Web MVC框架。python
MVC是软件工程中经常使用的软件架构模式,它是一种分离业务逻辑与显示界面的设计方法。它把软件系统分为三个基本部门:模型(Model)、视图(View)和控制器(Controller)。web
MVC框架的核心思想是:解耦,让不一样的代码块之间下降耦合,加强代码的可扩展性和可移植性,实现向后兼容。算法
当前主流的开发语言如Java、PHP、Python中都有MVC框架。数据库
Django的MTV模式本质上和MVC是同样的,也是为了各组件间保持松耦合关系,只是定义上有些许不一样,Django的MTV分别是值:django
除了以上三层以外,还须要一个URL分发器,它的做用是将一个个URL的页面请求分发给不一样的View处理,View再调用相应的Model和Template,MTV的响应模式以下所示:设计模式
通常是用户经过浏览器向咱们的服务器发起一个请求(request),这个请求回去访问视图函数,(若是不涉及到数据调用,那么这个时候视图函数返回一个模板也就是一个网页给用户),视图函数调用模型,模型去数据库查找数据,而后逐级返回,视图函数把返回的数据填充到模板中空格中,最后返回网页给用户。浏览器
pip install django -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com服务器
咱们以最多见的电商网站为例,网站上有跟用户有关的页面,有跟商品有关的页面,还有跟订单有关的页面,这样的一块内容其实就是网站的一个功能模块。session
在django中,项目的组织结构为一个项目包含多个应用,一个应用对应一个业务模块。
建立项目的命令以下:
django-admin startproject 项目名称
建立一个项目,项目名为djangotest。
django-admin startproject djangotest
而后咱们查看下djangotest的目录。
manage.py是项目管理文件,经过它管理项目。
而后就是与项目同名的目录,此处为djangotest。
使用一个应用开发一个业务模块,此处建立应用名称为booktest,完成图书的信息维护。
python manage.py startapp booktest
应用建立成功后,须要安装才可使用,也就是创建应用和项目之间的关联,在djangotest/settings.py中INSTALLED_APPS下添加应用的名称就能够完成安装。
初始项目的INSTALLED_APPS:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ]
接下来在元组中添加一个新的项,当前示例为booktest:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'booktest', ]
在开发阶段,为了可以快速预览到开发的效果,django提供了一个纯python编写的轻量级web服务器,仅在开发阶段使用。
运行服务器命令:
python manage.py runserver ip:端口
能够不写IP和端口,默认IP是127.0.0.1,默认端口为8000。
服务器启动成功:
紧接着在浏览器中输入网址“127.0.0.1:8000”,能够查看当前站点开发效果。
若是增长、修改、删除文件,服务器会自动重启;
按ctrl+c中止服务器。