#打算学习django框架,然后利用python的socket做一个简易的本地动态网站,代码如下。注:代码可用,只需要创造相应的html文件。
import socket
import time
def f1():
f=open('index.html','rb')
data=f.read()
f.close()
return data
def f2():
f=open('list.html','r',encoding='utf-8')
data=f.read()
f.close()
ctime=time.time()
data=data.replace('ID',str(ctime))
return bytes(data,encoding='utf-8')
routers=[#创建路由
('/xxxx',f1),
('/oooo',f2),
]
def run():
sock=socket.socket()
sock.bind(('127.0.0.1',8080))
sock.listen(5)
print(sock)
while True:
conn,addr=sock.accept()#夯筑
data=conn.recv(8096)
data=str(data,encoding="utf-8")
print(data)
url=data.split()[1]
for item in routers:
if item[0]==url:
func_name=item[1]
break
if func_name:
response=func_name()
else:
response=b"404"
conn.send(response)
conn.close()
if __name__=="__main__":
run()
运行的过程中报出了非常奇怪的错误,
Traceback (most recent call last):
File "f:/Python/Django/Django学习/2020.2.15/动 网站/框架代码.py", line 44, in <module>
态网站/框架代码.py", line 44, in <module>
run() 网站/框架代码.py", line 36, in run
File "f:/Python/Django/Django学习/2020.2.15/动
态网站/框架代码.py", line 36, in run 网站/框架代码.py", line 10, in f2
response=func_name()
File "f:/Python/Django/Django学习/2020.2.15/动 ctory: 'list.html'
态网站/框架代码.py", line 10, in f2
f=open('list.html','r',encoding='utf-8')
FileNotFoundError: [Errno 2] No such file or directory: 'list.html'
错误显示找不到文件list.html,但是Python文件与html文件确实处于同一文件夹下。
然后我用了python自带的Edit with IDLE试了试,发现运行正常,在ie浏览器中输入相应url可以正常显示;而使用vscode总的“在终端运行python”就会产生错误。所以上述结果只能说明vscode本身存在问题。