如何使用WebOb构建文件上传的POST HTTP请求?

3 投票
2 回答
1553 浏览
提问于 2025-04-16 22:24

我正在使用Ian Bicking的WebOb来编写Python网页应用的测试,效果非常好。我调用了webob.Request.blank('/path...'),然后用生成的请求对象的get_response(app)方法来调用我的网页应用。返回的响应对象让我可以检查HTTP响应的状态码、内容类型、正文等等。构建一个POST请求也很简单:

Request.blank('/path/under/test/', POST={'query': 'some text'})

但是现在我遇到了一点难题:我需要测试我的网页应用中的一个视图,它需要上传文件,而我不太明白WebOb是如何处理这种类型的POST请求的。有没有人知道怎么在WebOb请求中添加一个或多个文件上传字段呢?

2 个回答

1

你可以使用 WebTest 来实现这个功能,具体可以查看 TestApp.post 的参数,详细信息可以在 这里 找到。

5

就在几天前,你可以这样做:

req = Request.blank('/path/under/test', 
                    POST={'query': 'some text', 'upload': ('filename', 'content')})

这个功能是在这个提交中加入的,目前还没有正式发布。

撰写回答