如何使用Python设置本地HTTP服务器
我正在尝试做一些基本的D3编程。我读的所有书都在谈论如何设置本地http服务器,而这正是我发现自己陷入困境的地方。我输入了以下内容如何使用Python设置本地HTTP服务器,python,d3.js,Python,D3.js,我正在尝试做一些基本的D3编程。我读的所有书都在谈论如何设置本地http服务器,而这正是我发现自己陷入困境的地方。我输入了以下内容 python -m http.server 托管本地服务器。现在,我的问题是如何在本地服务器上打开我的html文件?我甚至不知道如何在命令提示符下找到文件。任何帮助都将不胜感激。下面是我在aptana上的html文件代码。我还将d3.js文件放在了aptana中 <!DOCTYPE html> <html lang="en"> &
python -m http.server
托管本地服务器。现在,我的问题是如何在本地服务器上打开我的html文件?我甚至不知道如何在命令提示符下找到文件。任何帮助都将不胜感激。下面是我在aptana上的html文件代码。我还将d3.js文件放在了aptana中
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>
D3 Page Template
</title>
<script type="text/javascript" src="d3.js"></script>
</head>
<script type="text/javascript">
//D3 codes will go here
</script>
</html>
D3页面模板
//D3代码在这里
当我运行aptana时,html文件会在常规firefox页面中打开。我希望它在本地托管的http服务器页面中打开。任何提示。答案将在启动服务器时提供。在HTML文件所在的同一目录中,启动服务器:
$python-mhttp.server
在0.0.0.0端口8000上提供HTTP服务。。。
(或者,蟒蛇2咒语)
$python-msimplehttpserver
在0.0.0.0端口8000上提供HTTP服务。。。
在这条消息中,Python告诉您IP地址(0.0.0.0)和端口号(8000)
因此,如果文件名为d3_template.html,您可以通过http://0.0.0.0:8000/d3_template.html
在大多数机器上,您也应该能够使用
http://localhost:8000/d3_template.html
或
http://127.0.0.1:8000/d3_template.html
如果出现如下错误:
socket.error:[Errno 48]地址已在使用中
您想使用不同的端口:
$python-mhttp.server 8888
要加载文件,请执行以下操作:
http://0.0.0.0:8888/d3_template.html
要理解为什么所有这些都能工作,您需要学习一点关于网络的知识(端口、DNS、环回接口、多个网卡在同一台机器上的行为,以及,如果事情不按预期工作,防火墙、受限端口和谁知道还有什么)。我创建了一个小型的可移植python 3脚本(应该可以在MacOS/Linux上使用)本地呈现使用d3或更一般网站的html文件。我认为这对其他人可能有用 基本上,它使用子流程创建本地服务器,打开浏览器进行渲染,然后正确关闭服务器以实现快速重用。您可以在此处找到Python 3脚本(以及有关如何使用它的一些详细信息):。使用示例如下:
$ python custom_server.py index.html
这将呈现使用d3.js的index.html文件或更通用的网站。尝试以下操作:
from http.server import HTTPServer, BaseHTTPRequestHandler
class Serv(BaseHTTPRequestHandler):
def do_GET(self):
if self.path == '/':
self.path = '/test.html'
try:
file_to_open = open(self.path[1:]).read()
self.send_response(200)
except:
file_to_open = "File not found"
self.send_response(404)
self.end_headers()
self.wfile.write(bytes(file_to_open, 'utf-8'))
httpd = HTTPServer(('localhost',8080),Serv)
httpd.serve_forever()
其中
test.html
是您编写的html文件。问题不是关于d3.d3,您的内联是在客户端运行的,不需要服务器。真正的问题是“如何使用Python设置本地服务器?”但是我正在读的所有书都是关于本地托管http服务器的。你是说d3编程不需要这个服务器吗?我同意w/Taysky的观点,这个问题需要重新命名和标记。认识到大多数编程任务将由许多较小的任务组成,有些任务与你的核心任务无关。学会提问适合任务的问题是一项基本技能。令人惊讶的是,谷歌搜索Taysky建议的标题或用它开始一个SO问题并没有带来任何有用的东西。更不用说Python 2和Python 3的差异可能会让初学者感到困惑。