问题标签 [webob]

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 回答
1789 浏览

python - 如何从原始 HTTP 请求字节流构造 webob.Request 或 WSGI 'environ' dict?

假设我有一个字节流,其中包含以下内容:

有没有办法从中生成 WSGI 风格的“环境”字典?

希望我忽略了一个简单的答案,它与相反的操作一样容易实现。考虑:

0 投票
1 回答
2216 浏览

python - 使用 PIL Image 打开 POSTed 文件

使用 WSGI、webob 和 PIL,我试图Image.open()直接从请求中使用文件。但是,Image.open()总是抛出异常“无法识别图像文件”。图像是唯一的字段,不使用其他 POST 或 GET 变量。该文件来自带有 enctype="multipart/form-data" 的标准 HTML 上传表单。

我的猜测是我没有正确加载上传的图像数据,但不确定正确的方法是什么。

0 投票
1 回答
448 浏览

python - Pylons:响应重命名?有没有更好的办法?

我有一个 Pylons 控制器,其中包含一个名为serialize返回的操作content_type=text/csv。我希望根据输入参数命名操作的响应,即对于以下路线,生成的 csv 文件应命名为{id}.csv/app/PROD/serialize=> PROD.csv(因此用户可以在 Excel 中直接通过正确名称打开文件)网页浏览器)

我尝试设置 webob 响应对象的不同 HTTP 标头和属性,但没有成功。但是,我通过简单地向控制器添加一个新操作并将原始操作动态重定向到该新操作来找到一种解决方法,即:

控制器的片段:

上面的设置工作得很好,但是,有没有更好/更流畅/更整洁的方法呢?理想情况下,我不想重定向请求;相反,我想重命名location或设置content-disposition: attachment; filename='XXX.csv'[ 均未成功尝试:( ]

我在这里遗漏了一些明显的东西吗?

干杯

更新: 感谢ebo,我已经设法解决了content-disposition。下次最好阅读 W3C 规范;)

0 投票
1 回答
854 浏览

python - 如何使用带有多个同名复选框的 pylons(粘贴)webtest?

假设我有这样的表格:

如何使用 webtest 的表单库来测试提交多个值?

0 投票
1 回答
630 浏览

python - Google App Engine Python WebApp 框架支持 self.error() 代码

我知道我们可以通过调用将错误返回给请求self.error(http_error_code_here)。但是,有些错误代码似乎不受支持。当我使用错误代码 510 时出现“不支持的错误代码”。

我使用http://en.wikipedia.org/wiki/List_of_HTTP_status_codes作为我正在使用的错误代码的参考。

GAE Python WebApp 框架目前支持哪些 http 错误代码?

0 投票
3 回答
525 浏览

python - 如何重定向到非英文字符的 url?

我正在使用 pylons,并且我的一些 url 包含非英文字符,例如:

在大多数情况下,这不是问题,但是在我的登录模块中,在用户注销后,我尝试referer从中获取request.headers,并重定向到该 url。

不幸的是,如果url中包含非英文字符,并且用IE浏览器会报这样的错误(Firefox是可以的):

有一种方法可以修复它(但不好),用于urllib.quote()在重定向之前转换 url。

这不是一个好的解决方案,因为它只有在浏览器是 IE 的情况下才有效,而且非常无聊。有什么好的解决办法吗?

0 投票
1 回答
261 浏览

python - 每个 hudson 测试版本的新 solr 实例

我正在为一个由 hudson 提供支持的 python 站点构建一个测试套件。目前,测试运行的工作流程如下所示:

  1. 从存储库中拉下最新版本。
  2. 创建一个新的 mysql 数据库并导入模式文件和一些夹具数据。
  3. 运行测试,主要由 webtest 提供支持,这意味着不需要运行 Web 服务器。
  4. 删除 mysql 数据库。

这种模式类似于 Django 处理测试的方式。

我想为 solr 复制这种模式;我的存储库中有一个 schema.xml 文件的测试副本,并希望在每个测试开始时用一个空索引支持一个新的 solr 实例,并在完成后对其进行核对。schema.xml 文件可能会更改(很像 mysql 模式),这就是为什么每次都需要从头开始重建它的原因(除了良好的测试卫生)。

我发现 solr 文档在这方面相当有限。我可以在码头下运行 solr,这应该可以简化问题,但我不知道如何在每次部署时动态创建新的 solr 实例或至少一个新的核心。

0 投票
3 回答
5028 浏览

paste - WMS/WFS 服务器:我自己写的疯了吗?

我是一个“自己动手”的人,但我想确保我不会因为试图咬掉的东西超过我能咀嚼的东西而自取其辱。

我正在编写一个基于浏览器的地图应用程序,该应用程序需要选择在最终用户的机器上独立运行(无互联网连接)。也就是说,应用程序是某种服务器,在许多情况下,它会安装在最终用户的机器上,并且浏览器将指向某个 localhost URL 来访问它。

我将在客户端使用 MapLayers,而服务器端将有一堆特定于应用程序的自定义逻辑,例如以某些自定义方式处理地图上的点击事件,在特定时间在地图上创建各种自定义对象,等等。

对于服务器的“业务逻辑”部分,我很高兴将 paste/webob 与 python 一起使用。这是一个简单的基础架构,让我可以轻松地放入所有这些自定义逻辑。

我一直认为客户端将与两个服务器进行通信:这个粘贴/webob 业务逻辑服务器,以及一个仅用于服务 WMS 和 WFS 地图元素的服务器。所以我在看 MapServer 和 GeoServer 来处理地图部分......我不高兴。

我不高兴,因为我不想在客户端机器上安装和担心“野兽”。对于 MapServer,我真的不想安装像 Apache 这样的成熟 Web 服务器,而必须处理 CGI、PHP 和 MapScript。对于 GeoServer,有(可能)安装 Java,并处理 GeoServer 设置和管理的各种复杂性。

这部分只是一个学习曲线问题。如果我能避免它,我对学习 MapServer 或 GeoServer 的复杂性并不特别感兴趣。我安装了 GeoServer,将其指向我的一些数据,并且能够使用 GeoServer 漂亮的 Web 管理员内置的 MapLayers 预览来查看我的数据。但是,当我尝试使用指向 GeoServer 的自己的 MapLayers 网页来提供真实数据时,我的 GeoServer 崩溃了。我可以使服务器崩溃,只是从客户端发送一些可能格式错误的请求,这让我感到非常惊讶。我可以深入研究 GeoServer 日志,试图找出我做错了什么,但是……我真的不想在这上面花很多时间。

因此,我正在考虑使用我已经拥有的粘贴/webob 服务器自己实现部分 WMS 和 WFS 接口。事实上,我可能只需要 WMS,因为我可以通过一个简单的自定义协议来处理矢量对象,我将数据传递给客户端,然后客户端可以直接使用 OpenLayers 创建和操作对象。

我已经查看了 WMS 的规范和示例消息(在 WFS 中略少)。自己实现这个协议似乎并不难,特别是因为在这种情况下我可以完全控制客户端——我不需要能够充当通用 WMS 或 WFS 服务器;我只需要让我自己的 OpenLayers 客户满意。

我需要 WMS 服务器具备的两个主要能力是:

  • 从我提前创建的预渲染图块存储中提供图块(我将使用 OpenStreetMap 数据和 mapnik 作为重渲染引擎预渲染图块;我将使用正常的 Google 地图样式图块命名方案来存储和访问它们OpenLayers 所期望的)

  • 能够为这些图块的修改版本提供服务器,其中我在本地存储的某些数据绘制在图块的顶部。例如,我可能在一个“层”上有 10000 个点,在另一层上有 10000 个多边形,当用户激活这些层时,我将提供相同的基础图块,但是当我提供这些图块时,我将渲染这些附加功能在它们之上,并且可能我会实现一个简单的缓存方案来将这些过度渲染的图块保留一段时间。

所以我的问题是:尽管我知道有现有的工具可以做这些事情(MapServer、GeoServer、TileCache 等),但我实际上觉得仅仅响应一些简单的 WMS 消息对我来说工作量较小,并且在 python 中自己在我的瓷砖上进行额外的过度绘制,确保一切都正确投影,等等。我不需要为这些覆盖层绘制花哨的宽阔街道或任何东西,只需简单的线条、图标,也许还有标签。拥有一个仅限 python 的解决方案听起来确实不错且简单。

我想如果我需要扩展以支持更多的 WMS/WFS 协议,或者进行更高级的过度绘制,我可以在那个时候插入 MapServer/GeoServer。

这里有我没有考虑的陷阱吗?

0 投票
1 回答
555 浏览

python - After referencing an element in a WebOb.params (UnicodeMultiDict) an element gets popped off the end

When I reference the params parameter of the WebOb Request an element is suddenly popped off the end. That or it's being reduced to a single element. The referenced element isn't the one getting knocked off.

Before this line logging turns up:

after:

I'm at a loss.

0 投票
1 回答
645 浏览

python - 我正在使用 Pylons 并遇到 response.set_cookie 问题

我在想 Pylons 的一个版本是不同的,但我找不到一种简单的方法来判断我正在运行哪些版本。在第一个示例中,我相当肯定它是 0.9.7 及更高版本,使用 webob 设置 cookie。此环境将 @ 符号设置为 \100。正如您在其他环境中看到的那样,执行完全相同的操作会正确设置值。如果您需要更多信息,请告诉我任何帮助,我们将不胜感激。

较新版本的 Pylons(我认为)错误地设置了值

测试环境正常/预期工作