MVC

来源:互联网 发布:护考做题软件免费 编辑:程序博客网 时间:2024/04/29 12:41
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打印到网络流中。
0 0