Python 要查看的Web2py映射控制器
只是想知道是否有人可以在这里为我指出一个web2py应用程序的正确方向。到目前为止,我有2个控制器,但我将使用更多。我拥有的两个工具是Python 要查看的Web2py映射控制器,python,model-view-controller,web2py,Python,Model View Controller,Web2py,只是想知道是否有人可以在这里为我指出一个web2py应用程序的正确方向。到目前为止,我有2个控制器,但我将使用更多。我拥有的两个工具是index.py和dialog\u manager.py index.py此时返回一个空的dict,并在myapp/views/index/目录中公开index.html视图。在index.html中,用户可以单击界面中带有href属性的按钮,如下所示: <a href="{{=URL(c="diary_manager", f="diary_manager"
index.py
和dialog\u manager.py
index.py
此时返回一个空的dict,并在myapp/views/index/
目录中公开index.html
视图。在index.html
中,用户可以单击界面中带有href
属性的按钮,如下所示:
<a href="{{=URL(c="diary_manager", f="diary_manager")}}">Diary</a>
如果单击该链接,它将调用diary\u manager.py
控制器中的diary\u manager
函数。到目前为止一切都很好
现在我遇到了一个问题。如果我从dialog\u manager
函数返回dict
,我必须将相应的视图放在myapp/views/dialog\u manager/
目录中,这将被公开。另一方面,如果我不返回dict,我就根本无法公开视图
所以我有几个问题:
响应的值。根据某些规则查看。例如,假设您将所有视图文件放在顶级/views
目录中,并使用模式[controller].[function].[extension]
命名它们。在这种情况下,可以在模型文件中包含以下行:
response.view = '%s_%s.%s' % (request.controller, request.function,
request.extension)
如果上面的代码在模型文件中,它将在每个请求上执行,因此它将为每个控制器/操作正确设置视图文件
如何强制不返回dict的控制器打开特定视图
你为什么要这么做?如果您没有要返回的内容,只是想执行一个视图,那么可以返回一个空字典
或者,您的函数可以直接渲染视图并返回渲染输出:
def myfunction():
[some code]
return response.render()
response.render()
可选地接受第一个参数(即视图文件名)和第二个参数,这是视图环境中可用的变量字典。如果您的函数是日记管理器
,那么您相应的视图应该是myapp/views/diary\u管理器
而不是myapp/views/diarymanager
@JoeR您确实是对的,这是我的一个输入错误。谢谢,这一切都是有意义的