Html web2py重定向到错误页面

Html web2py重定向到错误页面,html,forms,redirect,web2py,Html,Forms,Redirect,Web2py,我正在学习web2py。我发现两个非常简单的操作之间存在重定向错误。 我从web2py手册中简单修改的这个应用程序只是用来帮助我理解web2py的controlflow、request.args和request.vars。 这是我的默认控制器中的代码 def index(): redirect(URL("first",args=1)) def first(): return dict() def second(): return dict() 然后我创建first.ht

我正在学习web2py。我发现两个非常简单的操作之间存在重定向错误。 我从web2py手册中简单修改的这个应用程序只是用来帮助我理解web2py的controlflow、request.args和request.vars。 这是我的默认控制器中的代码

def index():
    redirect(URL("first",args=1))
def first():
    return dict()
def second():
    return dict()
然后我创建first.html和second.html

html是

重定向是有意义的。我对此感到困惑。这是web2py中的一个bug还是我误解了web2py的控制流?

这本书是不正确的(尽管源代码现在已经在Github上修复)。在
中,由于“second”前面没有“/”,浏览器将其解释为相对于当前页面的URL,因此它被附加到当前URL(这就是表单被提交到/default/first/second的原因)

相反,请使用
URL()
帮助程序生成正确的URL:

<form action="{{=URL('default', 'second')}}">

这将生成以下HTML:

<form action="/welcome/default/second">


通常,最好使用
URL()
帮助程序生成内部URL(特别是在使用URL重写系统时,因为它会根据重写规则自动转换URL)。

很酷,它可以工作。我完全理解了controlflow和URL帮助程序。你真是太好了。非常感谢你,安东尼
def index():
    redirect(URL("first",args=1))
def index():
    redirect(URL("first"))
<form action="{{=URL('default', 'second')}}">
<form action="/welcome/default/second">