Cherrypy:无法获取我的POST数据

时间:2011-04-25 16:33:45

标签: python post get cherrypy

我用CherryPy写了一个小小的webapp。但我有一个问题 - 我无法获取我的POST数据,但GET没问题。使用CherryPy内置服务器在Opera 10上查看本地主机(Win 7)。

以下是一些代码:

class Expose:
def __init__(self, fn):
    self.fn = fn

@cherrypy.expose()
def index(self, login=None):
    print 'LOGIN: ' + str(login)
    return self.fn(login=login)

import auth
root.process_form = Expose(auth.process_form)

这是我的URL切换。如果表单使用POST,并且GET的值正确,则LOGIN打印无。这是我的表格(模板):

<!DOCTYPE html>

<body>
<p>Create new user</p>

<form action="/process_form" method="post">
  <input type="text" name="login" value="login" />
  <input type="text" name="email" value="me@company.com" />
  <input type="text" name="password" value="123" />
  <input type="submit" />
</form>

</body>

我无法猜出出了什么问题。我可以检查什么?

2 个答案:

答案 0 :(得分:6)

尝试:

<!DOCTYPE html>

<body>
<p>Create new user</p>

<form action="/process_form/" method="post">
  <input type="text" name="login" value="login" />
  <input type="text" name="email" value="me@company.com" />
  <input type="text" name="password" value="123" />
  <input type="submit" />
</form>

</body>

请注意“/ process_form /

中的最后一个斜杠

答案 1 :(得分:-1)

我不知道root.processform是否是CherryPy中的特殊内容,如果不是,则需要公开process_form页面

@cherrypy.expose()
def process_form(self, email, login,password):
    ...stuff...

我可能遗漏了一些东西