2011-04-25 78 views
4

我使用CherryPy編寫了一個小型web應用程序。但是我有一個問題 - 我無法獲得我的POST數據,但GET無誤。使用CherryPy內置服務器託管本地主機(Win 7),使用Opera 10進行查看。Cherrypy:無法獲取POST數據

下面是一些代碼:

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

</body> 

我不能猜測出了什麼問題。我可以檢查什麼?

回答

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

</body> 

請注意「/ process_form/

中的最後一個斜槓
+0

謝謝! Exatly! CherryPy與我的服務器設置生成重定向,如果最後的斜槓省略並丟失POST數據。我調整了服務器設置,但是用/我認爲完成網址是個好習慣。 – demi 2011-09-16 08:59:47

-1

,我不知道是否root.processform是CherryPy的一些特別的東西,如果不是你需要暴露一個process_form頁面

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

我可能失去了一些東西

+0

這不會幫助... – demi 2011-04-25 17:08:34

+0

-1沒有讀取問題或代碼 – tobyodavies 2012-01-05 06:08:43