我用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>
我无法猜出出了什么问题。我可以检查什么?
答案 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...
我可能遗漏了一些东西