2013-07-05 55 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