当你的import requests
文件__init__.py
被执行时,如果你在你的案例中检查那个文件,你会发现这一行:
from .api import request, get, head, post, patch, put, delete, options
这意味着api.py
您正在导入get()
功能:
def get(url, **kwargs):
kwargs.setdefault('allow_redirects', True)
return request('get', url, **kwargs)
如您所见,它调用请求函数api.py
,如下所示:
def request(method, url, **kwargs):
session = sessions.Session()
return session.request(method=method, url=url, **kwargs)
这将创建一个Session
在内部定义的对象session.py
,然后调用它的方法request
。此方法将调用方法,该方法send()
返回一个在内部Response
类中定义的对象(我复制第一行):Response
models.py
class Response(object):
def __init__(self):
super(Response, self).__init__()
self._content = False
self._content_consumed = False
#: Integer Code of responded HTTP Status.
self.status_code = None
...
这是status_code
定义的位置,因此当您调用时,r = requests.get("http://www.google.com")
您正在检索此对象,然后您可以访问status_code