+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2019-08(83)

2019-09(103)

2019-10(10)

2019-11(11)

2019-12(15)

2020-01(26)

2020-02(18)

Django框架(一):MVC设计模式、Django简介

发布于2020-01-20 18:32     阅读(1033)     评论(0)     点赞(9)     收藏(1)


作者:@小灰灰
本文为作者原创,转载请注明出处:https://www.cnblogs.com/liuhui0308/p/12189658.html


1. MVC设计模式

MVC设计模式:Model-View-Controller简写。

最早由TrygveReenskaug在1978年提出,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件设计模式,是为了将传统的输入(input)、处理(processing)、输出(output)任务运用到图形化用户交互模型中而设计的。随着标准输入输出设备的出现,开发人员只需要将精力集中在业务逻辑的分析与实现上。后来被推荐为Oracle旗下Sun公司Java EE平台的设计模式,并且受到越来越多的使用ColdFusion和PHP的开发者的欢迎。现在虽然不再使用原来的分工方式,但是这种分工的思想被沿用下来,广泛应用于软件工程中,是一种典型并且应用广泛的软件架构模式。后来,MVC的思想被应用在了Web开发方面,被称为Web MVC框架。

MVC是软件工程中常用的软件架构模式,它是一种分离业务逻辑与显示界面的设计方法。它把软件系统分为三个基本部门:模型(Model)、视图(View)和控制器(Controller)。

  • 控制器Controller:对请求进行处理,负责请求转发。
  • 视图View:界面设计人员进行图形界面设计。
  • 模型Model:编写程序应用的功能(实现算法等等)、数据库管理。

MVC框架的核心思想是:解耦,让不同的代码块之间降低耦合,增强代码的可扩展性和可移植性,实现向后兼容。

当前主流的开发语言如Java、PHP、Python中都有MVC框架。

2. Django简介

2.1 MTV设计模式

Django的MTV模式本质上和MVC是一样的,也是为了各组件间保持松耦合关系,只是定义上有些许不同,Django的MTV分别是值:

  • M 代表模型(Model):负责业务对象和数据库的关系映射(ORM)。
  • T 代表模板 (Template):负责如何把页面展示给用户(html)。
  • V 代表视图(View):负责业务逻辑,并在适当时候调用Model和Template。

除了以上三层之外,还需要一个URL分发器,它的作用是将一个个URL的页面请求分发给不同的View处理,View再调用相应的Model和Template,MTV的响应模式如下所示:

 一般是用户通过浏览器向我们的服务器发起一个请求(request),这个请求回去访问视图函数,(如果不涉及到数据调用,那么这个时候视图函数返回一个模板也就是一个网页给用户),视图函数调用模型,模型去数据库查找数据,然后逐级返回,视图函数把返回的数据填充到模板中空格中,最后返回网页给用户。

2.2 Django的简单使用

2.2.1 Django的安装

pip install django -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

2.2.2 创建Django项目

我们以最常见的电商网站为例,网站上有跟用户有关的页面,有跟商品有关的页面,还有跟订单有关的页面,这样的一块内容其实就是网站的一个功能模块。

在django中,项目的组织结构为一个项目包含多个应用,一个应用对应一个业务模块。

创建项目的命令如下:

django-admin startproject 项目名称

创建一个项目,项目名为djangotest。

django-admin startproject djangotest

然后我们查看下djangotest的目录。

2.2.3 项目默认目录说明

manage.py是项目管理文件,通过它管理项目。 

然后就是与项目同名的目录,此处为djangotest。

  • _init_.py是一个空文件,作用是这个目录test1可以被当作包使用。
  • asgi.py是项目的asgi配置文件。
  • settings.py是项目的整体配置文件。
  • urls.py是项目的URL配置文件。
  • wsgi.py是项目与WSGI兼容的Web服务器入口。

2.2.4 创建应用

使用一个应用开发一个业务模块,此处创建应用名称为booktest,完成图书的信息维护。

python manage.py startapp booktest

  • _init.py_是一个空文件,表示当前目录booktest可以当作一个python包使用。
  • tests.py文件用于开发测试用例,在实际开发中会有专门的测试人员,这个事情不需要我们来做。
  • models.py文件跟数据库操作相关。
  • views.py文件跟接收浏览器请求,进行处理,返回页面相关。
  • admin.py文件跟网站的后台管理相关。
  • apps文件夹是django1.10之后增加的,通常里面包含对应用的配置。

2.2.5 安装应用 

应用创建成功后,需要安装才可以使用,也就是建立应用和项目之间的关联,在djangotest/settings.py中INSTALLED_APPS下添加应用的名称就可以完成安装。 

初始项目的INSTALLED_APPS:

复制代码
  1. INSTALLED_APPS = [
  2. 'django.contrib.admin',
  3. 'django.contrib.auth',
  4. 'django.contrib.contenttypes',
  5. 'django.contrib.sessions',
  6. 'django.contrib.messages',
  7. 'django.contrib.staticfiles',
  8. ]
复制代码

接下来在元组中添加一个新的项,当前示例为booktest:

复制代码
  1. INSTALLED_APPS = [
  2. 'django.contrib.admin',
  3. 'django.contrib.auth',
  4. 'django.contrib.contenttypes',
  5. 'django.contrib.sessions',
  6. 'django.contrib.messages',
  7. 'django.contrib.staticfiles',
  8. 'booktest',
  9. ]
复制代码

2.2.6 开发服务器

在开发阶段,为了能够快速预览到开发的效果,django提供了一个纯python编写的轻量级web服务器,仅在开发阶段使用。

运行服务器命令:

python manage.py runserver ip:端口

可以不写IP和端口,默认IP是127.0.0.1,默认端口为8000。

服务器启动成功:

紧接着在浏览器中输入网址“127.0.0.1:8000”,可以查看当前站点开发效果。

如果增加、修改、删除文件,服务器会自动重启;
按ctrl+c停止服务器。



所属网站分类: 技术文章 > python文章

作者:我想打人

链接: http://www.pythonheidong.com/blog/article/229266/

来源:python黑洞网 www.pythonheidong.com

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

9 0

赞一赞 or 踩一踩

收藏该文
已收藏

评论内容:(最多支持255个字符)

相似文章

  5171. 最接近的因数

  Python实现生成西瓜数据集的Excel文件

  Leetcode - 删除排序数组中的重复项

  python第五天-字符串

  数据结构|LeetCode(力扣)经典题:队列

  python学习笔记(3)

  TYD_初识python数据可视化库-Matplotlib

  Scrapy安装与应用教程

  python实现修改文件中的内容

  mac环境下python3.6安装pyhanlp工具包

优质资源排行榜

 python经典电子书大合集下载 下载次数 8138

 零基础java开发工程师视频教程全套,基础+进阶+项目实战(152G) 下载次数 7550

 零基础前端开发工程师视频教程全套,基础+进阶+项目实战(共120G) 下载次数 7442

 零基础大数据全套视频400G 下载次数 7006

 零基础php开发工程师视频教程全套,基础+进阶+项目实战(80G) 下载次数 6893

 零基础软件测试全套系统教程 下载次数 6506

 全套人工智能视频+pdf 下载次数 6443

 IOS全套视频教程 基础班+就业班 下载次数 4680

 编程小白的第一本python入门书(高清版)PDF下载 下载次数 3648

10  effective python编写高质量Python代码的59个有效方法 pdf下载 下载次数 3361

11  Python深度学习 pdf下载 下载次数 3156

12  笨办法学python pdf下载 下载次数 3087

13  Python Cookbook第三版中文PDF下载高清完整扫描原版 下载次数 3024

14  树莓派Python编程指南 pdf下载 下载次数 3011

15  python从入门到精通视频(全60集)python视频教程下载 下载次数 3009

16  python项目开发视频 下载次数 3002

17  使用python+pygame开发的小游戏《嗷大喵快跑》源码下载 下载次数 3000

18  黑马2017年java就业班全套视频教程 下载次数 2992

19  Python基础教程 pdf下载 下载次数 2988

20  python实战项目 平铺图像板系统源码下载,适用于想要保存,标记和共享图像,视频和网页的用户 下载次数 2987

21  利用python实现程序内存监控脚本 下载次数 2987

22  老男孩python自动化视频 下载次数 2983

23  老王python基础+进阶+项目视频教程 下载次数 2974

24  尚硅谷Go学科全套视频 下载次数 2972

25  某硅谷Python项目+AI课程+核心基础视频教程 下载次数 2968

26  Web前端实战精品课程 下载次数 2967

27  Python算法教程_中文版 pdf下载 下载次数 2966

28  tron python小游戏 下载次数 2963

29  [小甲鱼]零基础入门学习Python 下载次数 2962

30  老男孩python全栈开发15期 下载次数 2958

31  2017最新web前端开发完整视频教程附源码 下载次数 2948

32  最新全套完整JAVAWEB2018开发视频 下载次数 2926

33  流畅的Python PDF下载高清完整扫描原版 下载次数 2919

34  Spring boot实战视频6套下载 下载次数 2910

35  python全套视频十五期(116G) 下载次数 2908

36  Python高性能编程 pdf下载 下载次数 2906

37  Python项目实战 下载次数 2887

38  30个小时搞定Python网络爬虫 含源码 下载次数 2884

39  简明python教程 (A Byte of Python)pdf下载 下载次数 2884

40  利用Python进行数据分析 pdf下载 下载次数 2884

41  python全自动抢火车票教程-python视频教程下载 下载次数 2883

42  尚硅谷大数据之Hadoop视频 下载次数 2876

43  Python A~B~C~ python视频教程下载 下载次数 2866

44  数据结构与算法视频(小甲鱼讲解-全) 下载次数 2864

45  web小程序表白天数倒计时源码下载 下载次数 2863

46  python基础视频教程 下载次数 2862

47  go语言全套视频 下载次数 2855

48  清华学霸尹成Python爬虫视频-ok 下载次数 2846

49  黑马前端36期最全视频和代码 下载次数 2843

50  2018最新全套web前端视频教程+源码下载 下载次数 2841