Django MTV模式
Django将MVC模式做了改进:
模型部分没变;
控制器部分由URLconf来实现,即urls.py,其机制是使用正则表达式匹配URL,然后调用views.py中合适的函数;
而视图部分改成两部分,view视图(views.py)和template模板(html和模板语言)。即MTV模式,模式-模板-视图。视图方法定义了要显示模型中的哪些数据,模板决定数据的显示方式。
注意这里的view视图跟mvc中的view视图是有区别的:
Django view仅仅决定要展示那些数据给用户,至于如何展示交给了模板template,换句话说,作为业务逻辑层,连接模板和模型的桥梁:存取模型、渲染合适的模板。 MCV应该写成 View <--> Controller <--> Model 比较容易理解。例如简单的登陆界面操作相关,Views是登陆界面,Model是登陆功能模型,提供实现登陆功能的所有接口,比如网络请求、数据校验等等。Controller是Views和Model的连接,将Views的输入传递到Model,并且将Models的结果反馈到Views。
1、用户在View的Input上输入手机号后,点击View上的Button,触发Controller调用Model的verifyMobile(mobile)接口。
2、Model.verifyMobile(mobile) 校验后不符合手机号格式,返回出错提示msg: {passed: false, message:"长度不对"}。
3、Controller将msg显示在View上Input上。你就看Duang! 在手机输入框后边出现一个红色提示框提示长度不对。
4、用户修改成正确的手机号后,重复1、2,校验通过。Controller再调用login(mobile, password)方法来请求登录。
你在浏览器输入好用户名和密码之后,点击登录,浏览器会给服务器发个请求。
服务器接到请求之后,按照预先设定的路由规则把参数传给相应的controller。
controller判断参数合法性之后,从model那边拿数据。
model通过orm从数据库里面把数据取出来、封装成对象给controller。
之后,controller根据结果进行判断,然后加载相应的view(模板)。
最后controller把模板渲染出来的html打印到网络流中。
MVC
最新推荐文章于 2024-01-12 16:48:55 发布