Request Class — requests Architecture
Architecture documentation for the Request class in models.py from the requests codebase.
Entity Profile
Dependency Diagram
graph TD 075eaa90_3b36_3d32_fc50_b57c7c8fe638["Request"] 95bd3ad9_fc53_a808_b595_bd723df9bdcd["RequestHooksMixin"] 075eaa90_3b36_3d32_fc50_b57c7c8fe638 -->|extends| 95bd3ad9_fc53_a808_b595_bd723df9bdcd 461bc6e0_32e7_8eab_ec87_7226e7be0d13["models.py"] 075eaa90_3b36_3d32_fc50_b57c7c8fe638 -->|defined in| 461bc6e0_32e7_8eab_ec87_7226e7be0d13 a9a27ab4_fcfa_3217_4d25_ed320e4fa77a["__init__()"] 075eaa90_3b36_3d32_fc50_b57c7c8fe638 -->|method| a9a27ab4_fcfa_3217_4d25_ed320e4fa77a 23c5174e_61d8_b8a8_82a8_1e4e180503b1["__repr__()"] 075eaa90_3b36_3d32_fc50_b57c7c8fe638 -->|method| 23c5174e_61d8_b8a8_82a8_1e4e180503b1 2b8e3c1b_1e51_43b6_6d22_360c4395b029["prepare()"] 075eaa90_3b36_3d32_fc50_b57c7c8fe638 -->|method| 2b8e3c1b_1e51_43b6_6d22_360c4395b029
Relationship Graph
Source Code
src/requests/models.py lines 232–312
class Request(RequestHooksMixin):
"""A user-created :class:`Request <Request>` object.
Used to prepare a :class:`PreparedRequest <PreparedRequest>`, which is sent to the server.
:param method: HTTP method to use.
:param url: URL to send.
:param headers: dictionary of headers to send.
:param files: dictionary of {filename: fileobject} files to multipart upload.
:param data: the body to attach to the request. If a dictionary or
list of tuples ``[(key, value)]`` is provided, form-encoding will
take place.
:param json: json for the body to attach to the request (if files or data is not specified).
:param params: URL parameters to append to the URL. If a dictionary or
list of tuples ``[(key, value)]`` is provided, form-encoding will
take place.
:param auth: Auth handler or (user, pass) tuple.
:param cookies: dictionary or CookieJar of cookies to attach to this request.
:param hooks: dictionary of callback hooks, for internal usage.
Usage::
>>> import requests
>>> req = requests.Request('GET', 'https://httpbin.org/get')
>>> req.prepare()
<PreparedRequest [GET]>
"""
def __init__(
self,
method=None,
url=None,
headers=None,
files=None,
data=None,
params=None,
auth=None,
cookies=None,
hooks=None,
json=None,
):
# Default empty dicts for dict params.
data = [] if data is None else data
files = [] if files is None else files
headers = {} if headers is None else headers
params = {} if params is None else params
hooks = {} if hooks is None else hooks
self.hooks = default_hooks()
for k, v in list(hooks.items()):
self.register_hook(event=k, hook=v)
self.method = method
self.url = url
self.headers = headers
self.files = files
self.data = data
self.json = json
self.params = params
self.auth = auth
self.cookies = cookies
def __repr__(self):
return f"<Request [{self.method}]>"
def prepare(self):
"""Constructs a :class:`PreparedRequest <PreparedRequest>` for transmission and returns it."""
p = PreparedRequest()
p.prepare(
method=self.method,
url=self.url,
headers=self.headers,
files=self.files,
data=self.data,
json=self.json,
params=self.params,
auth=self.auth,
cookies=self.cookies,
hooks=self.hooks,
)
return p
Domain
Defined In
Extends
Source
Frequently Asked Questions
What is the Request class?
Request is a class in the requests codebase, defined in src/requests/models.py.
Where is Request defined?
Request is defined in src/requests/models.py at line 232.
What does Request extend?
Request extends RequestHooksMixin.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free