MCPcopy
hub / github.com/django/django / HttpRequest

Class HttpRequest

django/http/request.py:54–519  ·  view source on GitHub ↗

A basic HTTP request.

Source from the content-addressed store, hash-verified

52
53
54class HttpRequest:
55 """A basic HTTP request."""
56
57 # The encoding used in GET/POST dicts. None means use default setting.
58 _encoding = None
59 _upload_handlers = []
60 _multipart_parser_class = MultiPartParser
61
62 def __init__(self):
63 # WARNING: The `WSGIRequest` subclass doesn't call `super`.
64 # Any variable assignment made here should also happen in
65 # `WSGIRequest.__init__()`.
66
67 self.GET = QueryDict(mutable=True)
68 self.POST = QueryDict(mutable=True)
69 self.COOKIES = {}
70 self.META = {}
71 self.FILES = MultiValueDict()
72
73 self.path = ""
74 self.path_info = ""
75 self.method = None
76 self.resolver_match = None
77 self.content_type = None
78 self.content_params = None
79
80 def __repr__(self):
81 if self.method is None or not self.get_full_path():
82 return "<%s>" % self.__class__.__name__
83 return "<%s: %s %r>" % (
84 self.__class__.__name__,
85 self.method,
86 self.get_full_path(),
87 )
88
89 @cached_property
90 def headers(self):
91 return HttpHeaders(self.META)
92
93 @cached_property
94 def accepted_types(self):
95 """
96 Return a list of MediaType instances, in order of preference (quality).
97 """
98 header_value = self.headers.get("Accept", "*/*")
99 return sorted(
100 (
101 media_type
102 for token in header_value.split(",")
103 if token.strip() and (media_type := MediaType(token)).quality != 0
104 ),
105 key=operator.attrgetter("quality", "specificity"),
106 reverse=True,
107 )
108
109 @cached_property
110 def accepted_types_by_precedence(self):
111 """

Calls

no outgoing calls