Prerequisite – Views In Django | Python
Before we jump into using convenience methods that views come with, Let’s talk about Request and Response cycle. So when a Request happens to a Django server, a couple of things go on. One of them is Middleware.
Middleware
Middleware is like a middle ground between a request and response. It is like a window through which data passes. As in a window, light passes in and out of the house. Similarly when a request is made a request when made moves through middlewares to views and data is passed through middleware as a response.
Here are the default middlewares installed in Django.

You can add your middlewares. We will be discussing that in the next articles.
Request and Response Objects –
Django uses request and response objects to pass state through the system.
When a page is requested, Django creates an HttpRequest object that contains metadata about the request. Then Django loads the appropriate view, passing the HttpRequest as the first argument to the view function. Each view is responsible for returning an HttpResponse object.
HttpRequest and HttpResponse object Example
- To explain these objects let’s create a view home as below in views.py
# importing HttResponse from libraryfromdjango.httpimportHttpResponsedefhome(request):# request is handled using HttpResponse objectreturnHttpResponse("Any kind of HTML Here")chevron_rightfilter_none - To handle the request let us map a URL to this view in urls.py
# importing view from views.pyfrom.viewsimporthomeurlpatterns=[path('', home),]chevron_rightfilter_none - Now you can run the sever to see the following in browser

HttpRequest Attributes – Django
You can use following attributes with HttpRequest for advanced manipulation
| Attribute | Description |
|---|---|
| HttpRequest.scheme | A string representing the scheme of the request (HTTP or HTTPs usually). |
| HttpRequest.body | It returns the raw HTTP request body as a byte string. |
| HttpRequest.path | It returns the full path to the requested page does not include the scheme or domain. |
| HttpRequest.path_info | It shows path info portion of the path. |
| HttpRequest.method | It shows the HTTP method used in the request. |
| HttpRequest.encoding | It shows the current encoding used to decode form submission data. |
| HttpRequest.content_type | It shows the MIME type of the request, parsed from the CONTENT_TYPE header. |
| HttpRequest.content_params | It returns a dictionary of key/value parameters included in the CONTENT_TYPE header. |
| HttpRequest.GET | It returns a dictionary-like object containing all given HTTP GET parameters. |
| HttpRequest.POST | It is a dictionary-like object containing all given HTTP POST parameters. |
| HttpRequest.COOKIES | It returns all cookies available. |
| HttpRequest.FILES | It contains all uploaded files. |
| HttpRequest.META | It shows all available Http headers. |
| HttpRequest.resolver_match | It contains an instance of ResolverMatch representing the resolved URL. |
HttpRequest Methods – Django
You can use following methods with HttpRequest for advanced manipulation
| Attribute | Description |
|---|---|
| HttpRequest.get_host() | It returns the original host of the request. |
| HttpRequest.get_port() | It returns the originating port of the request. |
| HttpRequest.get_full_path() | It returns the path, plus an appended query string, if applicable. |
| HttpRequest.build_absolute_uri (location) | It returns the absolute URI form of location. |
| HttpRequest.get_signed_cookie (key, default=RAISE_ERROR, salt=”, max_age=None) | It returns a cookie value for a signed cookie, or raises a django.core.signing.BadSignature exception if the signature is no longer valid. |
| HttpRequest.is_secure() | It returns True if the request is secure; that is, if it was made with HTTPS. |
| HttpRequest.is_ajax() | It returns True if the request was made via an XMLHttpRequest. |
HttpResponse Attributes – Django
You can use following attributes with HttpResponse for advanced manipulation
| Attribute | Description |
|---|---|
| HttpResponse.content | A bytestring representing the content, encoded from a string if necessary. |
| HttpResponse.charset | It is a string denoting the charset in which the response will be encoded. |
| HttpResponse.status_code | It is an HTTP status code for the response. |
| HttpResponse.reason_phrase | The HTTP reason phrase for the response. |
| HttpResponse.streaming | It is false by default. |
| HttpResponse.closed | It is True if the response has been closed. |
HttpResponse Methods – Django
You can use following methods with HttpResponse for advanced manipulation
| Method | Description |
|---|---|
| HttpResponse.__init__(content=”, content_type=None, status=200, reason=None, charset=None) | It is used to instantiate an HttpResponse object with the given page content and content type. |
| HttpResponse.__setitem__(header, value) | It is used to set the given header name to the given value. |
| HttpResponse.__delitem__(header) | It deletes the header with the given name. |
| HttpResponse.__getitem__(header) | It returns the value for the given header name. |
| HttpResponse.has_header(header) | It returns either True or False based on a case-insensitive check for a header with the provided name. |
| HttpResponse.setdefault(header, value) | It is used to set default header. |
| HttpResponse.write(content) | It is used to create response object of file-like object. |
| HttpResponse.flush() | It is used to flush the response object. |
| HttpResponse.tell() | This method makes an HttpResponse instance a file-like object. |
| HttpResponse.getvalue() | It is used to get the value of HttpResponse.content. |
| HttpResponse.readable() | This method is used to create stream-like object of HttpResponse class. |
| HttpResponse.seekable() | It is used to make response object seekable. |
Recommended Posts:
- Django Basic App Model - Makemigrations and Migrate
- Difference Between Django and Node.js
- Top 10 Django Apps And Why Companies Are Using it?
- How to Create a Basic Project using MVT in Django ?
- Complete Django History | Python
- Django ORM - Inserting, Updating & Deleting Data
- How to Create an App in Django ?
- Django Basics
- Difference Between Django and Node.js
- Django Basic App Model - Makemigrations and Migrate
- Complete Django History | Python
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

