首先 controller 是数据来源 较为常见的一种为dict返回值 会被view调用
以下MVC 均只用字母替代 M——model C——controller V——view
MVC功能介绍:
C 其文件对应在controllers文件夹下 一般为python文件 处理和获取数据来源 为V提供显示的数据
M 数据模型,即用到的数据格式,比如表格等形式的数据,在不需要数据库等复杂数据格式情况下,可以用默认代码——即不完成任何工作。
V 其文件上层目录为views数据显示,其数据来源为C组织的数据
目录截图:
注意:MVC组织在不同的文件目录下,当然这个映射是由web2py底层实现的,所以不是特殊要求不用理解,应用需要知道这三个目录对应MVC的文件组织!
MCV的联系(映射关系):
上层的联系不在解释,仅从开发的角度理解这种映射对应关系
controller一般为py类,如其文件名为default.py
则对应的view文件,应该位于views文件夹下,且应该在其子目录default下,以常见的HTML为VIEW为例
其关系应该为:default/default.html
当然若controller 文件为 controllers/test.py 则对应的view文件 views/test/*.html
一个最重要的联系为view中的*.html对应的文件比如index.html必须保证对应的controller中有index函数!
实际上controller作为actions,网络的请求会被controller处理(诸如request、response、session对象)都是在controller中处理的,访问view的时候对应的controller中文件名相同(取出文件后缀的文件名)的功能函数将会被调用!
补充说明:
如果所有的controller都在一个py文件中,不妨为mycontroller.py(注意可以理解每个controller为一个function而已,因为每个action到来的时候只是会调用对应的函数,也许不太专业,可自行参悟)
则views目录下应该含有mycontroller子目录,而且对应每一个可以被访问的view(简单点的理解就当成是html)
在其被访问的时候,即网址中包含某个html,这里举例为first.html 则 后台会去访问mycontroller中的first函数。
至于mycontroller中的函数与html功能上的协作关系这里不介绍。
下面是URL对应的示例,对URL的形成有一定的参考意义,同时对上文的介绍也可以形成对应关系
(初学几天,暂时的理解这样,若有谬误欢迎指正!会及时修改!当然仅针对入门时想了解如何开发第一个demo的人入门的一点提示!很多个人理解相当的不专业,所以还请理解!)