问题标签 [simplehttpserver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1737 浏览

python - 如何在使用 python SimpleHTTPServer 时更改默认的 404 页面

当我使用命令启动 http 服务器时:

如何更改默认的 404 页面?

0 投票
1 回答
751 浏览

python - 为什么 subprocess.Popen 会阻塞 SimpleHTTPServer.SimpleHTTPRequestHandler 的响应

我有一个奇怪的问题,如果在请求处理程序中由 subprocess.Popen 生成一个新进程,则 SimpleHTTPRequestHandler 中的请求返回被阻止。但是 Popen 不应该是异步的吗?

该行为可以通过以下文件重现,并在我的 OS X 机器上使用 Python 2.6.7 以及在 SLES 机器上使用 ActivePython 2.6:webserver.py:

睡眠.py:

当我现在启动网络服务器,然后向 localhost:9019 发出 curl POST 请求时,网络服务器会立即打印:

但在我执行 curl 请求的控制台上,它显示以下行为:

当我使用 Python 2.7 运行相同的设置时,答案会立即出现在 curl 站点上。这怎么会发生,因为 Popen 似乎并没有阻止打印,而只是阻止了返回?问题是由于遗留原因我必须使用 python 2.6,那么让请求立即返回的最佳解决方法是什么?

0 投票
14 回答
513006 浏览

python - socket.error: [Errno 48] Address already in use

I'm trying to set up a server with python from mac terminal.

I navigate to folder location an use:

But this gives me error:

I had previously open a connection using the same command for a different website in a different location in my machine.

0 投票
1 回答
568 浏览

html - SimpleHTTPServer 图未显示

我正在使用 SimpleHTTPServer (在文件夹中调用output):

我有以下文件夹结构:

index.html(除其他外):

现在我查看index.htmlhttp://127.0.0.1:8080/index.html没有显示该图。为什么?服务器找到该文件,因为它没有提供任何404代码。

有趣的是,当我index.html在浏览器中作为本地文件(而不是通过 http 服务器)打开时,图像就会出现。

如果这很重要,我正在使用Opera

0 投票
1 回答
1237 浏览

python - 关闭浏览器后如何停止服务器

我对 python 本地服务器很陌生。我找到了一些脚本,可以帮助我通过 python 程序设置本地服务器。下面是我修改后的代码,我从其他代码中调用它:

关于这段代码有两个问题:

  1. 我尝试在真实浏览器上浏览一个本地的html文件,我注意到我只能将这段代码放在serve_forever(). 这是正确的做法吗?

  2. 当我尝试关闭浏览器时,我注意到这个程序一直在运行,我认为这可能是由该serve_forever()功能引起的。那正确吗?关闭浏览器后如何结束服务器?

0 投票
2 回答
933 浏览

python - 执行python脚本的python服务器

这个学期我正在上python课,我想以网页的形式在我的程序中添加图形用户界面。一部分我懒得学 Tkinter,一部分我只是在挑战自己,一部分我只是喜欢用 HTML/JS 编写接口。

我知道使用 SimpleHTTPServer 创建 HTTP 服务器的基础知识,但我需要一种方法让我的网页将 ajax 命令触发到服务器上的 python 脚本,然后在服务器端执行,然后接收脚本输出。有点像Sage做事的方式。

如何为 SimpleHTTPServer 创建一个扩展,然后我可以使用它来提供 python 脚本的输出?我需要一个非常通用的解决方案,以便给定我编写的任何 python 脚本,我可以轻松地将它包装在某种接口中,将它放在服务器的文件夹中,而无需做任何其他事情,只需使用 AJAX 调用它,我的服务器将处理其余部分。

我目前的想法是有一个ServerSideScript我的脚本可以扩展的类,它有一个名为output. 我拥有的每个脚本都应该包含一个名为 Script 的 ServerSideScript 子类。当要求服务器提供服务时,例如foo.py,它会注意到扩展并执行以下操作:

由于评论中指出的原因,这是行不通的,我知道import_module函数之类的东西,但是导入似乎是一种丑陋的开始方式。

有什么推荐的?

0 投票
8 回答
15612 浏览

python - 如何从 Python 脚本中杀死 SimpleHTTPServer?

我正在尝试用它http.server来测试 Python 项目中的所有链接。如果我在运行我的脚本之前启动服务器,我可以让我的脚本工作,然后当我关闭终端窗口时服务器停止。但我真的很希望脚本本身启动和停止服务器。

我制作了一个测试脚本来简单地启动服务器,获取页面并证明服务器正在运行,然后停止服务器。我似乎无法获得服务器的 pid。当我在脚本运行后尝试终止该脚本报告的 pid 时,我收到一条消息,指出没有这样的进程;但服务器仍在运行。

如何获得服务器的正确 pid,或者更一般地说,如何从脚本中停止服务器?

0 投票
2 回答
4023 浏览

python - 在 tmux 会话中出现 LSOpenURLsWithRole() 错误

LSOpenURLsWithRole() failed with error -600 for the URL http://localhost:9000/.

这是我SimpleHTTPServertmux会话中尝试启动时遇到的错误。我是一名前端 Web 开发人员,我大部分时间都在使用SimpleHTTPServer. 而不是Apache. 问题是它在open命令中出错,因为我有直接从终端(open dirname/open .)打开文件和目录的习惯,当我在其中使用它时,tmux它会给我同样的错误。我想提一下,我使用的是 Macbook Air,运行 OSX 10.9 Mavericks。

这是我在终端中用来启动服务器的函数代码:

编辑

该问题不再出现,因此我有 3 种可能的解决方案:

不大可能:

  • 从 Python3 更改为 Python 2.7.5(OS X 默认)

最有可能的:

  • Apple 发布了针对 Mavericks 的更新以解决此问题
  • 安装命令行工具以使用 Homebrew 构建和安装最新版本的 VIM
0 投票
5 回答
15485 浏览

python - 终止简单的 python 服务器不会用 ctrl + C 关闭

我运行了一个简单的网络服务器

它开始很好。然后使用 ctrl+C 尝试终止它,然后我去

并且服务器仍在运行。难道我做错了什么?

我正在使用 zsh 作为终端,不确定这是否与它有关。

0 投票
1 回答
128 浏览

javascript - 使用 SimpleHTTPServer 响应的结果更新 javascript 变量的值

我正在尝试制作一个供本地使用的 html 应用程序,它由一个使用 Google Maps API V3 的 HTML 页面、一个 SQLite 数据库和一个 SimpleHTTPServer 脚本组成。

工作流程如下:

  1. 用户启动服务器并打开页面,该页面包含一个带有一组标记的地图,以及一个带有类似于 Google Fusion Tables 过滤器的表单;
  2. 用户与表单交互,表单为查询设置一些参数;
  3. 当用户点击“提交”时,页面向 HTTPServer 发送请求,HTTPServer 的请求处理程序查询 SQLite 数据库并将结果返回为 JSON/JSONP/something-else;
  4. 一些函数取回数据并更新地图;

我的疑问比其他任何事情都更具概念性,特别是我想知道(如何/在哪里寻找):

  • 我应该如何在 javascript 中发送对服务器的请求,以及如何回听它?
  • 服务器应该如何向请求发送数据,以便更新其值而不是刷新页面?

对不起,如果我的问题看起来很明显,但 HTTP 对我来说是非常新的东西,客户端-服务器通信也是如此。

谢谢阅读!