我正在尝试将评论表单添加到我的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()
答案 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应用程序框架,您可以使用Apache和mod_python运行Django应用程序。
就其他框架而言,我个人非常喜欢flask。您可能会发现CherryPy很有趣,因为CherryPy提供了一个Web应用程序框架和一个Web服务器来运行它,这可能会更好地在您刚开始学习Web应用程序时最小化服务器设置问题。 (烧瓶确实附带了一个只能用于测试的开发服务器,但该开发服务器还没有为生产使用做好准备。)