📜  Django请求和响应

📅  最后修改于: 2020-12-31 00:45:52             🧑  作者: Mango

Django请求和响应

客户端-服务器体系结构包括两个主要组件:请求和响应。 Django框架使用客户端-服务器架构来实现Web应用程序。

当客户端请求资源时,将创建一个HttpRequest对象,并调用相应的视图函数以返回HttpResponse对象。

为了处理请求和响应,Django提供了HttpRequest和HttpResponse类。每个类都有自己的属性和方法。

让我们看一下HttpRequest类。

Django的HttpRequest

此类在django.http模块中定义,用于处理客户端请求。以下是此类的属性。

Django HttpRequest属性

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类的方法。

Django 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.

Django HttpRequest示例

// views.py

def methodinfo(request):
    return HttpResponse("Http request is: "+request.method)

// urls.py

path('info',views.methodinfo)

启动服务器并访问浏览器。它在浏览器中显示请求方法的名称。

输出:

Django的HttpResponse

此类是django.http模块的一部分。它负责生成与请求相对应的响应并返回给客户端。

此类包含下面提供的各种属性和方法。

Django HttpResponse属性

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.

Django HttpResponse方法

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应用程序中的响应。