如何让我的Python Web服务器打开它的目录中的文件

问题描述:

我正在尝试构建一个使用python来托管网站的Web服务器。 但我的代码中有一个缺陷,我似乎无法找到答案。 该缺陷是打开Web服务器脚本的同一目录中的文件。 下面是代码:如何让我的Python Web服务器打开它的目录中的文件

import socket 

host, port = '', 80 
website = ''' 
<a href='README.txt'>Read me file</a> 
''' 
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
s.bind((host, port)) 
print('SERVER STARTED ON PORT {}'.format(port)) 
s.listen(1) 
while True: 
    clientconnection, clientaddress = s.accept() 
    r = clientconnection.recv(1024) 
    print(r)  
    response = """ 
HTTPS/1.1 200 OK 

{} 
""".format(website) 
    clientconnection.sendall(bytes(response.encode())) 
    clientconnection.close() 

的链接工作到其他网站。 任何想法? Thx提前

+0

python 2中有这样一个巧妙的技巧:'python -m SimpleHTTPServer',它将提供文件夹中的所有文件。在python 3中:'python3.6 -m http.server' –

+0

我建议使用Flask或Django。他们会为你处理很多这种东西。 – dashiell

+0

谢谢,我会珍惜这些信息太多 – ariel2012

有一种叫SimpleHTTPServer。正如拉斐尔巴罗斯所说。您还应该创建一个标题为:index.html的文件。如果目录中没有index.html文件,则会列出所有文件和 目录。

+0

谢谢,但我想自己做 – ariel2012

+0

嗯,我不太确定。这需要很多时间。还有一些叫做BaseHttpServer的东西。有了这个,你可以做更多的事情(设置标题等)。正如我所说的,使用'SimpleHTTPServer'或'BaseHttpServer'会为你解决问题。但我很遗憾不知道自己做这件事是否可能,因为你没有这些功能。 – SunleafStudios

+0

你是什么意思功能 – ariel2012