我是python本地服务器的新手。我找到了一些脚本,可以帮助我通过python程序设置本地服务器。下面是我的修改后的代码,我从其他代码中调用此代码:
import sys
from SimpleHTTPServer import SimpleHTTPRequestHandler
import BaseHTTPServer
import webbrowser
def setup():
HandlerClass = SimpleHTTPRequestHandler
ServerClass = BaseHTTPServer.HTTPServer
Protocol = "HTTP/1.0"
port = 8888
server_address = ('127.0.0.1', port)
HandlerClass.protocol_version = Protocol
httpd = ServerClass(server_address, HandlerClass)
sa = httpd.socket.getsockname()
print "Serving HTTP on", sa[0], "port", sa[1], "..."
new = 2
url = "127.0.0.1:8888/webVisual/tree_structure.html"
webbrowser.open(url,new=new)
httpd.serve_forever()
关于此代码有两个问题:
我尝试在真正的浏览器上浏览一个本地html文件,我注意到我只能在这之前放一段代码serve_forever()
。这是正确的方法吗?
当我尝试关闭浏览器时,我注意到该程序一直在运行,我认为这可能是由该serve_forever()
功能引起的。是对的吗?关闭浏览器后如何结束服务器?
如果在httpd.serve_forever之后编写webbrowser.open,则httpd.serve可能会阻止执行,并且永远不会执行webbrowser.open。这就是为什么您没有看到浏览器的原因。您可以在httpd之后放置一个打印件作为实验,但永远不要打印。
webbrowser.open以不同于httpd的进程启动浏览器。
因此,当您关闭Web浏览器时,httpd.serve_forever()不会发生任何事情。顾名思义,httpd.serve_forever()将永久服务于http服务器,直到您通过ctrl + c或kill -9之类的脚本手动将其终止。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句