html向文档提交评论

时间:2013-07-05 20:24:30

标签: python html forms file

我正在尝试将评论表单添加到我的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>

如何让表单为文件写评论?

这是我用于服务器的python代码

#!/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()

1 个答案:

答案 0 :(得分:1)

使用此代码,您需要扩展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应用程序时最小化服务器设置问题。 (烧瓶确实附带了一个只能用于测试的开发服务器,但该开发服务器还没有为生产使用做好准备。)