当客户端使用SocketServer或内置的Python URL包发出请求时,我需要将HTML文件显示为网页。我的问题是我的displayIndex
函数当前显示HTML文件的内容而不是呈现的网页。这是功能:
def displayIndex(self):
header = "Content-Type: text/html\r\n\r\n"
f = open('index.html', 'r')
dataToSend = header
for line in f:
dataToSend = dataToSend + line
self.request.sendall(dataToSend)
以下是index.html的内容,在调用displayIndex
时显示为代码:
<!DOCTYPE html>
<html>
<head>
<title>Example Page</title>
<meta http-equiv="Content-Type"
content="text/html;charset=utf-8"/>
<!-- check conformance at http://validator.w3.org/check -->
<link rel="stylesheet" type="text/css" href="base.css">
</head>
<body>
<div class="eg">
<h1>An Example Page</h1>
<ul>
<li>It works?
<li><a href="deep/index.html">A deeper page</a></li>
</ul>
</div>
</body>
</html>
答案 0 :(得分:1)
我想你可能正在寻找的东西就像是
import webbrowser
url = "file://" + somepath + "/" + "index.html"
webbrowser.open(url)
见webbrowser。 这将发送一个命令,将文件显示到普通的Web浏览器(Firefox左右)。
答案 1 :(得分:0)
请参阅SimpleHTTPServer模块。
从python文档中,以下内容应该有效。它会自动查找index.html文件。
import SimpleHTTPServer
import SocketServer
PORT = 80
Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
httpd = SocketServer.TCPServer(("", PORT), Handler)
print "serving at port", PORT
httpd.serve_forever()