Diango教程-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 | 它显示从 CONTENT_TYPE 标头解析的请求的 MIME 类型。 |
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 的 cookie 值,或者如果签名不再有效,则引发 django.core.signing.BadSignature 异常。 |
HttpRequest.is_secure() | 如果请求是安全的,则返回 True;也就是说,如果它是使用 HTTPS 制作的。 |
HttpRequest.is_ajax() | 如果请求是通过 XMLHttpRequest 发出的,则返回 True。 |
Django HttpRequest 示例
// 视图.py
def methodinfo(request):
return HttpResponse("Http request is: "+request.method)
// url.py
path('info',views.methodinfo)
启动服务器并访问浏览器。它在浏览器中显示请求方法名称。
输出:
Django HttpResponse
该类是django.http模块的一部分。它负责生成与请求相对应的响应并返回给客户端。
此类包含下面给出的各种属性和方法。
Django HttpResponse 属性
属性 | 描述 |
---|---|
HttpResponse.content | 表示内容的字节串,如有必要,由字符串编码。 |
HttpResponse.charset | 它是一个字符串,表示将在其中对响应进行编码的字符集。 |
HttpResponse.status_code | 它是响应的HTTP 状态代码。 |
HttpResponse.reason_phrase | 响应的 HTTP 原因短语。 |
HttpResponse.streaming | 默认情况下为 false。 |
HttpResponse.close | 如果响应已关闭,则为 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.read() | 此方法用于创建 HttpResponse 类的类似流的对象。 |
HttpResponse.seekable() | 它用于使响应对象可查找。 |
我们可以使用这些方法和属性来处理 Django 应用程序中的响应。