问题标签 [wsgiref]

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 投票
2 回答
1840 浏览

python - Python 3.0 `wsgiref` 服务器无法正常工作

我似乎无法让wsgiref模块在 Python 3.0 下工作。但是,它对我来说在 2.5 下工作正常。即使我尝试文档中的示例,它也会失败。它失败得很厉害,即使我在上面有一个打印功能:“ from wsgiref.simple_server import make_server”,由于某种原因它永远不会被打印出来。它在运行时不会出现任何错误,它只是在浏览器中显示一个空白页面并且不记录任何类型的请求。

有谁知道问题可能是什么?谢谢!

0 投票
5 回答
2981 浏览

python - 在单元测试中使用 wsgiref.simple_server

我有一些像这样的功能:

我想用unittest测试它。

我做了这样的事情:

在 setUp() 我的测试停止,因为 s.handle_request() 等待请求。我怎样才能解决这个问题?在另一个线程中运行 s.handle_request()?或者也许还有另一种解决方案?

编辑:我想测试“func”功能,而不是“app_200_hello”

0 投票
1 回答
2980 浏览

python - 如何使用 WSGIREF 捕获 POST

我正在尝试从一个简单的表单中捕获 POST 数据。

这是我第一次玩 WSGIREF,我似乎找不到正确的方法来做到这一点。

显然缺少正确信息来捕捉帖子的功能:

0 投票
1 回答
1717 浏览

python - 当 WSGI 应用在使用 environ['wsgi.input'] 之前做出响应时,会发生 TCP 连接重置

对于我们的 Web 服务,我编写了一些逻辑来防止multipart/form-dataPOST 大于 4mb。

它归结为以下内容(我已经剥离了所有 WebOb 的使用,只是将其简化为普通的 WSGI 代码):

显示的逻辑在单元测试时可以正常工作。但是,当我尝试将大于 4mb 的实际文件发送到此端点时,我在客户端收到了如下错误:

  • Error 101 (net::ERR_CONNECTION_RESET): Unknown error.来自谷歌浏览器
  • The connection to the server was reset while the page was loading.来自火狐

使用 Python 内置wsgirefHTTP 服务器时也会出现同样的错误。

事实:一旦我environ['wsgi.input'].read()在响应 HTTP 400 之前添加,连接重置问题就消失了。当然,这不是一个好的解决方法。它只是显示了当您完全使用输入时会发生什么。

我仔细阅读了HTTP: The Definitive Guide,发现了一些有趣的指南,说明在实现 HTTP 服务器和客户端时仔细管理 TCP 连接的重要性。它继续讨论如何代替close-ing 套接字,而是首选做shutdown,以便客户端有机会做出反应并停止向服务器发送更多数据。

也许我错过了一些防止此类连接重置的关键实现细节。洞察任何人?

要点。

0 投票
3 回答
5345 浏览

python - 如何以 UTF-8 编码 WSGI 输出?

我想将 HTML 页面发送到编码为 UTF-8 的 Web 浏览器。但是以下示例失败:

这是回溯:

如果我删除编码并简单地返回 python 3 unicode 字符串,则 wsgiref 服务器似乎以浏览器在请求标头中指定的任何字符集进行编码。但是,我希望自己拥有这种控制权,因为我怀疑我是否可以期望所有 WSGI 服务器都这样做。我应该怎么做才能返回一个 UTF-8 编码的 HTML 页面?

谢谢!

0 投票
2 回答
1152 浏览

python - 在谷歌应用引擎中,如何遍历表单字段(python、wsgiref.handlers)

使用 python 和 wsgiref.handlers,我可以使用 self.handler.request.get(var_name) 从表单中获取单个变量,但是如何遍历所有表单变量,无论它们来自 GET 还是 POST?是这样的吗?

对于 self.handler.request.fields 中的字段:
value = self.handler.request.get(field)

同样,它应该包括 POST 中包含的字段和查询字符串中的字段,就像在 GET 请求中一样。

先谢谢各位...

0 投票
1 回答
928 浏览

python - 在 Python 中同时启动简单的 Web 服务器并启动浏览器

我想在本地启动一个简单的 Web 服务器,然后启动一个带有刚刚提供的 url 的浏览器。这是我想写的东西

问题是,我找不到blocking为 wsgiref 简单服务器设置选项的方法。默认情况下,它是阻塞的,因此只有在我停止浏览器后才会启动浏览器。如果我先启动浏览器,请求尚未处理。我更喜欢使用标准库中的 http 服务器,而不是外部服务器,如龙卷风。

0 投票
1 回答
6930 浏览

python - 为什么使用 wsgiref simple_server?

我有一个简单的 web 应用程序要构建,我刚刚开始搞乱 mod_wsgi。在各种教程中,第一个 hello world 应用程序如下所示:

然后,稍后该应用程序包含一个使用 wsgiref 的 wsgi 服务器,一些变体:

该应用程序在没有服务器的情况下工作,那么服务器是做什么用的?

0 投票
1 回答
401 浏览

python - 为什么 wsgiref.simple_server 将请求的内容类型报告为“文本/纯文本”,而没有发送?

client.py 的输出是text/plain虽然没有向服务器发送内容类型标头。
为什么?

0 投票
2 回答
487 浏览

python - AppEngine 混乱 - CGI,WSGI 兼容?

我很困惑。

如果 AppEngine 应该允许运行使用 WSGI 的应用程序..

.. 那么为什么不env包含PEP 333列出的变量必须- 存在 - 导致wsgiref.util.request_uri()引发 a KeyError

我基本上是在编写一些需要在 AppEngine 或典型的 Apache + modwsgi 设置中工作的库。我认为只需编写一个兼容的应用程序就足够了WSGI,但似乎 AppEngine 本身......不是吗?