Cherrypy:无法获取我的 POST 数据

发布于 2024-11-03 16:10:48 字数 996 浏览 1 评论 0原文

我用 CherryPy 编写了一个小型网络应用程序。但我有一个问题 - 我无法获取我的 POST 数据,但 GET 没问题。托管在本地主机(Win 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)

这是我的 URL 开关。如果表单使用 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="[email protected]" />
  <input type="text" name="password" value="123" />
  <input type="submit" />
</form>

</body>

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

I write a tiny webapp with CherryPy. But I has a problem - I can't get my POST data, but GET is ok. Hosted on local host (Win 7), viewed with Opera 10, using CherryPy built-in server.

Here is some code:

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)

This is is my URL switch. LOGIN prints None if form uses POST, and proper value for GET. Here is my form (template):

<!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="[email protected]" />
  <input type="text" name="password" value="123" />
  <input type="submit" />
</form>

</body>

I can't guess what goes wrong. What may I check?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

不寐倦长更 2024-11-10 16:10:48

尝试使用:

<!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="[email protected]" />
  <input type="text" name="password" value="123" />
  <input type="submit" />
</form>

</body>

注意“/process_form/ 中的最后一个斜杠”

Try with:

<!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="[email protected]" />
  <input type="text" name="password" value="123" />
  <input type="submit" />
</form>

</body>

Note the final slash in "/process_form/

流星番茄 2024-11-10 16:10:48

我不知道 root.processform 在 CherryPy 中是否有特殊之处,如果不是,您需要公开 process_form 页面,

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

我可能会丢失一些东西

I don't know if root.processform is something special in CherryPy, if not you need to expose a process_form page

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

I may be missing something

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文