Django MTV模式介绍(url.py、view.py、models.py、templates之间的关系)

先来介绍一下MTV:

    大多数人在接触Django之后才听说MTV的,那么就用熟悉的MVC作解释。

    也不知道什么是MVC?如下:

        M--Model 代表数据存取层;

        V--View 代表的是系统中选择显示什么和怎么显示的部分(包括模板和视图);

        C--Controller 指的是系统中根据用户输入并视需要访问模型,以决定使用哪个视图的那部分。

    下面可以说MTV了:

        M --模型(Model),数据存取层。 该层处理与数据相关的所有事务: 如何存取、如何验证有效(和MVC中的M一样)。

        T --模板(Template),即表现层。 该层处理与表现相关的决定: 如何在页面或其他类型文档中进行显示(相当于MVC中的V中的一部分,即:控制数据如何展现)。

        V --视图(View),即业务逻辑层。 该层包含存取模型及调取恰当模板的相关逻辑。 你可以把它看作模型与模板之间的桥梁(MVC中V的另一部分,即:怎样描述要展现的数据;换句话讲就是,现在数据(结果)有了,你可以选择用哪一个HTML文件(方法)去展示(解释))。 


        好的,介绍完了。

        会不会觉得MTV中漏掉了controller呢?这就是Django的特殊之处,它使用urls.py做url和view方法之间的控制器

完整的逻辑:

    一、在浏览器输入url之后,Django会去跟项目根目录下的urls.py中的每一个url正则表达式进行匹配,并且会跳转到第一个匹配到的url表达式后的方法(如果你有url重定向的话,会进行下一次匹配。或于去项目下其他APP中的urls.py中进行匹配)。

    二、这里有一个分支:

        分支(1)、由于我在项目中引用现成的数据库,所以都会在views.py中进行一些数据处理,如果需要对数据库进行操作,会在跳转到models.py.取完数据后再return给view。那么url跳转的方法就是views.py中定义的某个方法,处理完所需数据后return给某个html文件。

        分支(2)、如果你用很传统的Django方式,数据库是在models.py中定义的。那你就用Django查询数据的方法,用起来也很方便,只是我现在工作中都用的第一个套路。完了return给某个html文件就好啦。(很久没这样用了,可能说的很笼统)

就这样,这里主要是逻辑问题。如果有什么指导或问题,欢迎讨论。

        
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值