Phi*_*hil 5 python request python-2.x python-2.7 python-requests
I" 获得 "的请求,并且处理如反应:
resp = requests.get('url')
resp = resp.text
.. # do stuff with resp
Run Code Online (Sandbox Code Playgroud)
在阅读了包的文档之后,我看到有一个钩子功能允许我这样做:
def process_r(resp, **kwargs): .. do stuff with resp
resp = requests.get('url', hooks = {'response': process_r})
Run Code Online (Sandbox Code Playgroud)
我的问题:
我什么时候应该使用挂钩?或者,我为什么要使用钩子?
我希望在使用请求resp.text过程返回请求的响应后启动一个对象(解析器).
对于这种情况,这里有什么Pythonic,正确的方法?
谢谢
钩子距离"魔法"不到一百万英里.它们会使你的代码有可能做出令其他人感到惊讶的事情(从而违反"明确比隐含更好").
因此,钩子应该仅用于驱动行为,使事物更容易预测,而不是更少.例如,请求在内部使用它们来处理各种身份验证的401响应.
因此,您应该受到钩子限制的指导.文档的相关部分指出钩子需要返回一个Response对象.这会导致一些明显的可能行为:你可以发出额外的请求(比如上面的401钩子),或者你可以Response用某种方式改变它.
启动解析器就是你不应该用钩子做的事情.它应该是您业务逻辑的一部分.我会写一个实用函数.
| 归档时间: |
|
| 查看次数: |
1564 次 |
| 最近记录: |