在Cherrypy的tutorial之后,从页面类“内”的表单中接收数据似乎相当容易。现在,我试图将参数传递给另一个页面类的索引页面,如下所示:
在我的根索引页面中,我有以下表格:
<form action="otherpage" method="post">
<input type="text" name="arg1">
...
</form>
虽然接收页面的类如下:
class OtherPage:
def index(self, arg1=None):
return arg1
并且像
一样安装root.otherpage = Otherpage()
它始终显示一个空白页面,无论我在表单中放置什么,所以我猜它没有正确传递参数“arg”。你看到了什么问题吗?
答案 0 :(得分:3)
当您提交'otherpage'请求时,CherryPy会尝试使用您的Otherpage.index方法来处理请求。但是,有两件事情发生了:
trailing_slash(missing=True, extra=False, status=None, debug=False)
。这意味着,如果您请求缺少尾部斜杠的URI otherpage?arg1=foo
,那么CherryPy将添加尾部斜杠并将客户端重定向到请求otherpage/?arg1=foo
。请注意(因为'extra'arg默认为False)反之则不然:otherpage/
不会重定向到otherpage
。你应该:
tools.trailing_slash.missing = False
(在这种情况下,我相信索引方法只会在没有重定向的情况下提供资源,或者答案 1 :(得分:1)
今天第一次尝试过CherryPy并遇到了完全相同的问题。我认为其他页面未正确匹配,因为生成的URI缺少尾部斜杠。
尝试
<form action="otherpage/" method="post">
...