(如何)我可以将POST参数从一个cherrypy页面类传递给另一个页面类?

按照Cherrypy的教程,从页面类“内”的表单中接收数据似乎相当容易。现在,我试图将参数传递给另一个页面类的索引页面,如下所示: 在我的根索引页面中,我有以下形式:
<form action="otherpage" method="post">
    <input type="text" name="arg1"> 
    ... 
</form>
接收页面的类如下:
class OtherPage:
   def index(self, arg1=None):
      return arg1
它安装得像
root.otherpage = Otherpage()
它总是显示一个空白页面,无论我在表单中放置什么,所以我猜它没有正确传递参数“arg”。你看到了什么问题吗?     
已邀请:
今天第一次尝试CherryPy并遇到了完全相同的问题。我认为Otherpage未正确匹配,因为生成的URI缺少尾部斜杠。 尝试
<form action="otherpage/" method="post">
...
    
当您提交'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
。 然而,还有一个额外的皱纹,因为请求是POST而不是GET。 CherryPy引发303或302重定向(取决于您的客户端支持的HTTP版本),这可能不是您想要重定向POST的内容。有关完整讨论,请参见http://docs.cherrypy.org/dev/refman/_cperror.html#redirecting-post。 你应该: 如果可以,在HTML中添加尾部斜杠, 在配置中设置
tools.trailing_slash.missing = False
(在这种情况下,我相信索引方法只会在没有重定向的情况下为资源提供服务,或者 如果您可以控制客户端行为,则为尾随斜杠工具提供更合适的“status”参数。     

要回复问题请先登录注册