【问题标题】:Possible to send variables to the index page in CherryPy?可以将变量发送到 CherryPy 中的索引页吗?
【发布时间】:2010-01-03 01:11:14
【问题描述】:

例如我想通过 POST 访问 http://localhost:8080/?var=val 或类似的,但我收到 500 服务器错误:

500 内部服务器错误

服务器遇到了一个意外情况,导致它无法完成请求。

回溯(最近一次通话最后): 响应文件“c:\python26\lib\site-packages\cherrypy\_cprequest.py”,第 606 行 cherrypy.response.body = self.handler() 文件“c:\python26\lib\site-packages\cherrypy\_cpdispatch.py​​”,第 25 行,在 __call__ 返回 self.callable(*self.args, **self.kwargs) TypeError: index() 不接受任何参数(给定 1 个)

由 CherryPy 3.1.2 提供支持

【问题讨论】:

  • 那么您是如何编写index 函数的?错误消息说您不允许它接受任何参数,但它收到了一个(index 可能是服务于“根”URL 的函数,类似于通常为服务“根”而获取的 index.html 文件用于静态查询)。
  • 我发现我做错了什么,是一个逻辑错误,我错误地归因于我自己对cherrypy库的误解。
  • @tehryan 嘿,欢迎并鼓励您在答案中分享您如何解决问题 - 然后其他有相同问题的人可以看到如何解决它:)

标签: python cherrypy


【解决方案1】:

绝对有可能。

这是一个例子(改编自the CherryPy tutorial):

<form action="indexPostHandler" method="post">
    <p>Enter a value:</p>
    <input type="text" name="val" value=""/>
    <p><input type="submit" value="Login"/></p>
</form>

并且,在您的索引中,您可以使用类似以下的内容来处理请求:

class Root:
    # create form here
    def indexPostHandler(self, val=None):
        # do something with val here
        ...

【讨论】:

    猜你喜欢
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-22
    • 2017-06-23
    • 2013-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多