1

有人请帮我理解 models/menu.py 文件的以下代码:

response.menu = [  
(T('Home'),False,URL('default','index')),  
(T('About'),False,URL('default','what')),  
(T('Download'),False,URL('default','download')),  
(T('Docs & Resources'),False,URL('default','documentation')),  
(T('Support'),False,URL('default','support')),  
(T('Contributors'),False,URL('default','who'))  
]

在此,我们在 URL 中指定控制器(例如,default/what)。如果我想在其中指定一个视图怎么办?

4

1 回答 1

9

在此,我们在 URL 中指定控制器(例如,default/what)。如果我想在其中指定一个视图怎么办?

在 web2py 中,URL 不会直接路由到视图。相反,它们路由到控制器,并且控制器具有关联的视图(每个控制器都有一个默认视图,但控制器本身可以指定任何视图)。如果您想使用 URL 来告诉给定控制器使用不同于其通常视图的视图,您可以通过 URL 中的 arg 或 var 来指示。例如:

response.menu = [...,
    (T('About'), False,URL('default', 'what', args='alt')),
    ...]

在 default.py 控制器中:

def what():
    if request.args(0) == 'alt':
        response.view = 'default/what_alt.html'
    [rest of controller code]
于 2012-04-09T13:16:31.030 回答