2010-10-05 40 views
11

有沒有人知道有關如何將數據從HTML表單轉換爲python腳本的任何好資源?HTML表單POST到python腳本?

+0

這是我學會做的地方。 http://webpython.codepoint.net/ – John 2010-10-05 16:56:20

回答

8

對於非常基本的CGI腳本,可以使用cgi module。看看從Python文檔下面的文章就如何處理通過POST提交HTML表單的非常簡單的例子:從上面的文章

例子:

#!/usr/bin/env python 

import cgi 
import cgitb; cgitb.enable() # for troubleshooting 

print "Content-type: text/html" 
print 

print """ 
<html> 

<head><title>Sample CGI Script</title></head> 

<body> 

    <h3> Sample CGI Script </h3> 
""" 

form = cgi.FieldStorage() 
message = form.getvalue("message", "(no message)") 

print """ 

    <p>Previous message: %s</p> 

    <p>form 

    <form method="post" action="index.cgi"> 
    <p>message: <input type="text" name="message"/></p> 
    </form> 

</body> 

</html> 
""" % message 
+0

我來自HTML/JS/PHP的背景和有點困惑自己。上面的例子是什麼格式?我如何將瀏覽器指向它? – Skizit 2010-10-05 10:49:17

+0

@Meowmix:完全像php,但使用python。它由您的Web服務器執行,並以簡單的形式呈現HTML頁面。當表單回發到腳本時,它只是呈現回發送的消息。 – 2010-10-05 10:55:47

1

您也可以在命令行上使用curl。如果你只是想模擬用戶提交表單到Web服務器,你會做這樣的事情:

curl -F "user=1" -F "fname=Larry" -F "lname=Luser" http://localhost:8080 

這裏有很多其他選擇。 IIRC,'-F'使用'multipart/form-data',用'--data'替換-F將使用urlencoded表單數據。非常適合快速測試。

如果您需要發佈文件,你可以使用

curl -F"@mypic.jpg" http://localhost:8080 

如果你有使用Python這個,而不是一個命令行,我強烈推薦「海報」模塊。 http://atlee.ca/software/poster/ - 這使得這真的很容易(我知道,'因爲我沒有這個模塊做了,所以很頭疼)。