Cherrypy:无法获取我的POST数据
我写了一个小的网页应用,使用的是CherryPy框架。但是我遇到了一个问题——我无法获取POST请求的数据,而GET请求的数据可以正常获取。我是在本地(Windows 7)上运行的,用Opera 10浏览器查看,使用的是CherryPy自带的服务器。
这里有一些代码:
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)
这是我的网址切换部分。如果表单使用POST请求,LOGIN会打印出None,而如果是GET请求则会打印出正确的值。这里是我的表单(模板):
<!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 个回答
-1
我不知道root.processform在CherryPy中是不是有什么特别的意思,如果没有的话,你需要提供一个处理表单的页面。
@cherrypy.expose()
def process_form(self, email, login,password):
...stuff...
我可能漏掉了什么。
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/" 后面。