从python http服务器显示网页给出;

从python http服务器显示网页给出;,python,html,webpage,Python,Html,Webpage,我的目标是为我的家庭网络制作一个简单的web服务器,我可以用它来存储文件,这样我就可以将很少使用的文件从电脑中删除,然后在需要时下载它们。现在我仍在努力显示html页面。我知道了如何显示一个名为“upload.html”和一个名为“index.html”的文件。然而,我有一个名为“dataSync.html”的页面,浏览器只显示html文件的所有文本,前面有“ûhtml”。这些网页不是最终的网页,它们只是测试,所以我可以在制作网页之前让python服务器工作。“dataSync.html”实际

我的目标是为我的家庭网络制作一个简单的web服务器,我可以用它来存储文件,这样我就可以将很少使用的文件从电脑中删除,然后在需要时下载它们。现在我仍在努力显示html页面。我知道了如何显示一个名为“upload.html”和一个名为“index.html”的文件。然而,我有一个名为“dataSync.html”的页面,浏览器只显示html文件的所有文本,前面有“ûhtml”。这些网页不是最终的网页,它们只是测试,所以我可以在制作网页之前让python服务器工作。“dataSync.html”实际上是我的第一个网页,仅供测试之用

以下是python代码:

from http.server import BaseHTTPRequestHandler, HTTPServer
import os


class MyHandler(BaseHTTPRequestHandler):

def __set_headers__(self):
    self.send_response(200)
    self.send_header('Content-type', 'text/html')
    self.end_headers()

def do_HEAD(self):
    self.__set_headers__()

def do_GET(self):
    dir_path = os.path.dirname(os.path.realpath(__file__))
    try:
        if self.path.endswith('.html'):
            f = open(dir_path + self.path)  # open requested file

            # send code 200 response
            self.send_response(200)

            # send header first
            self.send_header('Content-type', 'text-html')
            self.end_headers()

            # send file content to client
            self.wfile.write(f.read().encode('utf-8'))
            f.close()
            return

    except IOError:
        self.send_error(404, 'file not found')


 def main():
    try:
    httpserver = HTTPServer(('', 8888), MyHandler)
    print('started httpserver...')
    httpserver.serve_forever()
    except KeyboardInterrupt:
    print('^C received, shutting down server')
    httpserver.socket.close()


 if __name__ == '__main__':
    main()
索引代码:

<!doctype html>
<html>
<head>
<title>Our Funky HTML Page</title>
<meta name="description" content="Our first page">
<meta name="keywords" content="html tutorial template">
</head>
<body>
Content goes here.
</body>
</html>

我们时髦的HTML页面
内容在这里。
数据同步代码:

<!DOCTYPE html>
<html>
<head>
<title>Data Sync</title>
<link rel="stylesheet" href="data sync.css">
<script>
function hide() {
document.getElementById("text").style.visibility = "hidden";
}
</script>
<script>
function show() {
document.getElementById("text").style.visibility = "visible";
}
</script>
</head>
<body>

<h1>Data Sync</h1>
<p>Here you will be able to sync your data between two computers</p>
<img src="https://qbservices.net/wp-content/uploads/2015/07/quickbooks-sync-
300x94.jpg">
<p id="text">click the button to change this text</p>
<button id="button1" onclick="hide()">Hide</button>
<button id="button2" onclick="show()">Show</button>
<button id="FolderButton" 
onClick="document.querySelector('.inputFile').click();">Folder</button>
<input class="inputFile" type="file" accept=".dir" style="display: none" 
webkitdirectory directory multiple/>
</body>
</html>

数据传输程序
函数hide(){
document.getElementById(“text”).style.visibility=“hidden”;
}
函数show(){
document.getElementById(“text”).style.visibility=“可见”;
}
数据传输程序
在这里,您将能够在两台计算机之间同步数据

单击按钮更改此文本

隐藏 显示 文件夹
dataSync.html确实在python之外工作
任何帮助都会很好,谢谢

文本html
不是正确的
内容类型。使用
text/html;charset=utf-8
。谢谢你,Ryan。这确实解决了问题。然而,我仍然会在网页的最顶端看到“Ô。你知道为什么吗。谷歌没有给出太多答案。请确保您的文件保存为UTF-8,并将其传递给
open
open(dir\u path+self.path,encoding=“UTF-8”)
。因此,我按照您的建议执行了操作,文件以“UTF-8”保存,并将其添加到open函数中。不过,这并没有什么不同。但是,我也添加到了html文件中,它删除了奇怪的字符,因此,谢谢你:)