2013-07-05 127 views
1

我想添加一個評論表單到我的HTML測試網站,但我無法獲得表單來將評論寫入文件。html提交評論意見文檔

<form action="/Users/kyle/server/comments.html" method="POST"> 
    Your name: <br> 
    <input type="text" name="realname"><br> 
    <br>Your email: <br> 
    <input type="text" name="email"><br> 
    <br>Your comments: <br> 
    <textarea name="comments" rows="15" cols="50"></textarea><br><br> 
    <input type="submit" value="Submit"> 
</form> 

我該如何獲得表單來向文件寫評論?

這是我使用的服務器

#!/usr/bin/python 
from BaseHTTPServer import BaseHTTPRequestHandler,HTTPServer 

PORT_NUMBER = 8080 

#This class will handles any incoming request from 
#the browser 
a = open("/Users/kyle/server/web-test.html") 
site=a.read() 
class myHandler(BaseHTTPRequestHandler): 

    #Handler for the GET requests 
    def do_GET(self): 
     self.send_response(200) 
     self.send_header('Content-type','text/html') 
     self.end_headers() 
     # Send the html message 
     self.wfile.write(site) 
     return 

try: 
    #Create a web server and define the handler to manage the 
    #incoming request 
    server = HTTPServer(('', PORT_NUMBER), myHandler) 
    print 'Started httpserver on port ' , PORT_NUMBER 

    #Wait forever for incoming htto requests 
    server.serve_forever() 

except KeyboardInterrupt: 
    print '^C received, shutting down the web server' 
    server.socket.close() 
+7

您需要某種後端編程語言(如php,java或python)來執行此操作。 HTML本身就是一種標記語言,無法做到這一點。 –

+0

我做了一個使用python的服務器,它託管了我的家庭網絡上的評估網站。 –

+1

你是在說「<! - 這種評論 - >'? – acdcjunior

回答

1

使用此代碼的Python代碼,你需要擴展myHandler處理POST請求,然後接受一個POST請求的方法,你將需要自己解析表單數據。該站點提供了獲取POST數據的簡單示例:http://pymotw.com/2/BaseHTTPServer/#http-post。一旦從表單數據獲得了評論,就可以將它寫入文件中,就像通常在任何其他Python應用程序中那樣。如果您需要,可以閱讀和編寫文件,下面是一些Python文檔:http://docs.python.org/3/tutorial/inputoutput.html#reading-and-writing-files

也就是說,像這樣的直接在原始請求上運行的代碼通常不會寫入生產用途。一般來說,Web應用程序是使用一個框架開發的,這些框架爲您完成了大量的工作。該框架通常在獨立的Web服務器下運行。例如,Django是一個Web應用程序框架,您可以使用Apachemod_python運行您的Django應用程序。

就其他框架而言,我個人喜歡flask。您可能會發現CherryPy有趣,因爲CherryPy提供了一個Web應用程序框架和一個Web服務器來運行它,這可能會更好地減少服務器設置問題,而您剛剛開始瞭解Web應用程序。 (燒瓶確實帶有一個可用於測試的開發服務器,但該開發服務器幾乎無法用於生產使用。)

+0

@ kylek很高興成爲服務。記住,如果我問你最終使用什麼? – jpmc26