2011-03-29 143 views
2

如果我创建一个应用程序和一些控制器,默认情况下,我会使用访问:默认应用程序

的http:// 127.0.0.1/application/controller/function

我想改变我可以通过不要求应用程序部分访问任何控制器的URL的行为。用我的榜样,我希望能够访问我的应用程序的所有控制器是这样的:

http:// 127.0.0.1 /application/controller/function1 
http:// 127.0.0.1 /application/controller2/function2 
http:// 127.0.0.1 /application/controller2/function3 (and etc.) 

我想要做的就是删除需要指出的应用程序能够访问所有我控制器这样的:

http:// 127.0.0.1/controller/function1 
http:// 127.0.0.1/controller2/function2 
http:// 127.0.0.1/controller2/function3 (and etc.) 

修改我的routes.py:

# routes.py 
default_application = 'application' 
default_controller = 'controller' 
default_function = 'index' 

我可以访问http://127.0.0.1/,我被重定向到http://127.0.0.1/controller/index 但是,如果我尝试访问其他功能,我需要指出应用程序。

我没有找到一个关于如何配置routes.py的好参考,我认为我必须改变这个文件来得到我想要的。

任何人都可以帮到我吗?

谢谢!

回答

3

the book中解释了web2py URL重写功能。请注意,您可以选择更新(更简单)parameter-based system和另一个pattern-based system(它为更复杂的案例提供了一些额外的灵活性)。在你的情况下,基于参数的系统将是最简单的 - 只需在您的routes.py文件中的以下内容:

routers = dict(
    BASE = dict(
     default_application = 'application', 
     default_controller = 'controller', 
    ), 
) 

如果你需要额外的帮助,我会建议,要求对web2py mailing list