我对Python相对来说比较陌生,但最近它一直在做很多不同的事情,我喜欢它。不过,我用下面的代码遇到了麻烦/阻塞。简单的Python网络服务器的do_GET()方法中的html
import http.server
import socketserver
import glob
import random
class Server(http.server.SimpleHTTPRequestHandler):
def do_GET(self):
self.send_response(200, 'OK')
self.send_header('Content-type', 'html')
self.end_headers()
self.wfile.write(bytes("
Hello World ", 'UTF-8'))images = glob.glob('*.jpg')
rand = random.randint(0,len(images)-1)
imagestring = " "
self.wfile.write(bytes(imagestring, 'UTF-8'))
def serve_forever(port):
socketserver.TCPServer(('', port), Server).serve_forever()
if __name__ == "__main__":
Server.serve_forever(8000)
我在这里要做的是从目录中的多个图像中抓取一个随机图像,并将其添加到Web请求的响应中。 代码工作正常,但当我通过浏览器访问服务器时,图像不显示。该页面的html正如预期的那样。这些文件的权限是755.另外我试图在do_GET方法中创建一个index.html文件。那也行不通。我的意思是index.html生成的很好,但是这次浏览器中的响应没有显示任何内容(甚至没有标题中的hello world)。
我在这里想念什么很简单吗?我在想,是否应该重载底层SocketServer.BaseServer的handle_request,因为文档说你不应该重写BaseHTTPServer的handle()方法,而应该重写相应的do_ *方法?