📅  最后修改于: 2020-12-31 00:45:52             🧑  作者: Mango
客户端-服务器体系结构包括两个主要组件:请求和响应。 Django框架使用客户端-服务器架构来实现Web应用程序。
当客户端请求资源时,将创建一个HttpRequest对象,并调用相应的视图函数以返回HttpResponse对象。
为了处理请求和响应,Django提供了HttpRequest和HttpResponse类。每个类都有自己的属性和方法。
让我们看一下HttpRequest类。
此类在django.http模块中定义,用于处理客户端请求。以下是此类的属性。
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类的方法。
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. |
// views.py
def methodinfo(request):
return HttpResponse("Http request is: "+request.method)
// urls.py
path('info',views.methodinfo)
启动服务器并访问浏览器。它在浏览器中显示请求方法的名称。
输出:
此类是django.http模块的一部分。它负责生成与请求相对应的响应并返回给客户端。
此类包含下面提供的各种属性和方法。
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. |
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. |
我们可以使用这些方法和属性来处理Django应用程序中的响应。