zoukankan      html  css  js  c++  java
  • Django基础—— 5.MVC和MTV开发模式

    网页的运行机制

    从著名的MVC模式说起,所谓MVC就是吧Web应用分为模型(M)、控制器(C)和视图(V)三层,他们之间以一种插件式的、松耦合的方式连接在一起,模型负责业务对象与数据库的映射(ORM),视图负责与用户的交互(页面),控制器接受用户的输入,调用模型和视图完成用户的请求,其实意图如下所示:

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

    M代表模型(Model): 负责业务对象和数据库的关系映射(ORM)。

    T代表模板(Template): 负责如何把页面展示给用户(html)。

    V代表视图(View): 负责业务逻辑,并在适当的时候调用Model和Temolate。

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

    1、web服务器(中间件)收到一个Http请求

    2、Django在URL conf里查找对应的视图(View)函数开处理http请求

    3、视图函数调用相应的数据模型来存取数据、调用相应的模板向用户展示页面

    4、视图函数处理结束后返回一个http的响应给Web服务器

    5、Web服务器将响应发送给客户端

      这种设计模式关键的优势在于各种组件都是松耦合的。这样,每个由Django驱动的Web应用都有着明确的目的,并且可独立更改而不影响到其他的部分。

      比如,开发者更改一个应用程序中的URL而不用影响到这个程序底层的实现。设计师可以改变HTML页面的样式而不用接触Python代码。数据库管理员可以重新命名数据表并且只需更改模型,无需从一大堆文件中进行查找和替换。

    Django的MTV模式相对应的Python文件如下:

  • 相关阅读:
    P1772 [ZJOI2006]物流运输
    P3951 小凯的疑惑
    P1082 同余方程(【模板】exgcd)
    T107741 【模板】权值线段树合并
    P3205 [HNOI2010]合唱队
    P1062 数列
    P1144 最短路计数
    P1502 窗口的星星
    P4147 玉蟾宫(【模板】悬线法)
    CSP模拟赛#3 分段(T1-26)
  • 原文地址:https://www.cnblogs.com/yz9110/p/9328828.html
Copyright © 2011-2022 走看看