URL中的默认应用程序

时间:2011-03-29 20:24:13

标签: python web2py

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

访问它

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的好参考,我认为我必须更改此文件以获得我想要的内容。

任何人都可以帮助我?

谢谢!

1 个答案:

答案 0 :(得分: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