web2py URL重写

时间:2017-02-06 17:36:53

标签: python url-rewriting web2py

我正在玩web2py网址重写。应用程序的名称是py2manager,我想通过代码在web2py中将其设为默认值:

# vim py2manager/routes.py:

routers = dict(
    BASE = dict(
        default_application='py2manager',
    )
)

但是在web2py重新启动后,我无法访问此页面http://localhost:8000/user/login(应该与旧版本http://localhost:8000/py2manager/default/user/login相同,旧版本可以正常工作)。我无法以某种方式找到调试日志。

我的web2py版本是从git克隆的2.14.6-stable+timestamp.2016.05.09.19.18.48

如何通过省略py2manager/default路径进行正确的重写。

P.S。作为文档,我使用了官方人http://web2py.com/books/default/chapter/29/04/the-core#URL-rewrite

2 个答案:

答案 0 :(得分:1)

默认函数为index,因此路由器需要更多信息来区分/index/user/login的请求(其中userlogin都是{{{ 1}} function)和index(其中/user/loginlogin函数的arg)。为此,您必须在相关控制器中指定功能列表:

user

此外,如果可能,您应该使用routers = dict( BASE = dict( default_application='py2manager', ), py2manager = dict( default_controller='default', default_function='index', functions=dict( default=['index', 'user', 'list', 'of', 'other', 'functions'] ) ) ) 函数生成您的网址,因为它始终会根据路由器的配置为给定路由生成相应的网址。

答案 1 :(得分:0)

可能需要重新加载路线。

如果你去管理员。在右上角,“更改管理员密码”按钮旁边是“重新加载路由”按钮。