Django 请求和响应

Django 请求和响应

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

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

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

让我们来看一下HttpRequest类。

Django HttpRequest

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

Django HttpRequest属性

属性 描述
HttpRequest.scheme 一个表示请求方案的字符串(通常是HTTP或HTTPs)。
HttpRequest.body 以字节字符串的形式返回原始的HTTP请求主体。
HttpRequest.path 返回请求页面的完整路径,不包括方案或域名。
HttpRequest.path_info 显示路径信息部分的路径。
HttpRequest.method 显示请求中使用的HTTP方法。
HttpRequest.encoding 显示用于解码表单提交数据的当前编码。
HttpRequest.content_type 显示请求的MIME类型,从CONTENT_TYPE标头中解析。
HttpRequest.content_params 返回包含在CONTENT_TYPE标头中的键/值参数的字典。
HttpRequest.GET 返回一个类似字典的对象,包含所有给定的HTTP GET参数。
HttpRequest.POST 一个类似字典的对象,包含所有给定的HTTP POST参数。
HttpRequest.COOKIES 返回所有可用的cookie。
HttpRequest.FILES 包含所有已上传的文件。
HttpRequest.META 显示所有可用的HTTP头。
HttpRequest.resolver_match 包含一个表示解析的URL的ResolverMatch的实例。

以下表格包含了HttpRequest类的方法。

Django HttpRequest 方法

属性 描述
HttpRequest.get_host() 返回请求的原始主机。
HttpRequest.get_port() 返回请求的来源端口。
HttpRequest.get_full_path() 返回路径,如果适用则附加查询字符串。
HttpRequest.build_absolute_uri (location) 返回位置的绝对URI形式。
HttpRequest.get_signed_cookie (key, default=RAISE_ERROR, salt=”, max_age=None) 返回签名cookie的值,如果签名不再有效,则引发django.core.signing.BadSignature异常。
HttpRequest.is_secure() 如果请求是安全的(即使用HTTPS)则返回True。
HttpRequest.is_ajax() 如果请求是通过XMLHttpRequest发出的,则返回True。

Django HttpRequest 示例

// views.py

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

// urls.py

path('info',views.methodinfo)

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

输出:

Django 请求和响应

Django HttpResponse响应

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

该类包含以下各种属性和方法。

Django HttpResponse属性

属性 描述
HttpResponse.content 一个表示内容的字节字符串,如果需要,会从字符串编码。
HttpResponse.charset 它是一个表示响应将被编码的字符集的字符串。
HttpResponse.status_code 这是一个 HTTP状态码 ,用于响应。
HttpResponse.reason_phrase 响应的HTTP原因短语。
HttpResponse.streaming 默认为false。
HttpResponse.closed 如果响应已关闭,则为True。

Django HttpResponse方法

方法 描述
HttpResponse.__init__ (content='', content_type=None, status=200, reason=None, charset=None) 用给定的页面内容和内容类型实例化一个HttpResponse对象。
HttpResponse.__setitem__ (header, value) 将给定的头名称设置为给定的值。
HttpResponse.__delitem__ (header) 删除具有给定名称的头。
HttpResponse.__getitem__ (header) 返回给定头名称的值。
HttpResponse.has_header (header) 根据不区分大小写的检查提供的名称是否存在头,返回True或False。
HttpResponse.setdefault (header, value) 设置默认头。
HttpResponse.write (content) 创建文件对象的响应对象。
HttpResponse.flush() 刷新响应对象。
HttpResponse.tell() 使HttpResponse实例像文件对象一样。
HttpResponse.getvalue() 获取HttpResponse.content的值。
HttpResponse.readable() 创建类HttpResponse的流对象。
HttpResponse.seekable() 使响应对象可以进行定位。

我们可以在Django应用程序中使用这些方法和属性来处理响应。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程