Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Python设置本地HTTP服务器_Python_D3.js - Fatal编程技术网

如何使用Python设置本地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"> &

我正在尝试做一些基本的D3编程。我读的所有书都在谈论如何设置本地http服务器,而这正是我发现自己陷入困境的地方。我输入了以下内容

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的差异可能会让初学者感到困惑。