因为搜索的缘故,我需要调用其他URI的GET、POST、PUT等请求,但是我无法在Pyramid框架内部找到这样的方法。目前有没有什么办法可以实现呢?
只需使用现有的Python库来调用其他Web服务器。
在Python 2.x中,请使用urllib2
,在Python 3.x中,请使用urllib.request
。或者,您可以安装requests
。
请注意,在为自己提供服务时从您的服务器调用外部站点可能意味着您的访问者最终等待停止响应的第三方Web服务器。确保设置合理的超时时间。
from webob import Request
r = Request.blank("http://google.com")
response = r.send()
from webob import Request
r = Request.blank("http://facebook.com",method="DELETE")
print r
DELETE HTTP/1.0
Host: facebook.com:80
同时检查响应状态码:response.status_int。我举个例子,用它来内省我的内部URI,并查看给定的相对URI是否真正由框架提供服务(例如生成面包屑并仅在路径后面有页面时将中间路径作为链接)。