Django 请求和响应2024 年 8 月 29 日 | 阅读 3 分钟 客户端-服务器架构包括两个主要组件:请求和响应。 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 | 它显示路径的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 | 它返回所有可用的cookies。 | HttpRequest.FILES | 它包含所有上传的文件。 | HttpRequest.META | 它显示所有可用的Http标头。 | HttpRequest.resolver_match | 它包含ResolverMatch的实例,代表已解析的URL。 |
下表包含HttpRequest类的方法。 Django HttpRequest 方法属性 | 描述 |
---|
HttpRequest.get_host() | 它返回请求的原始主机。 | HttpRequest.get_port() | 它返回请求的原始端口。 | HttpRequest.get_full_path() | 它返回路径,以及附加的查询字符串(如果适用)。 | HttpRequest.build_absolute_uri (location) | 它返回location的绝对URI形式。 | HttpRequest.get_signed_cookie (key, default=RAISE_ERROR, salt='', max_age=None) | 它返回已签名cookie的cookie值,如果签名不再有效,则引发django.core.signing.BadSignature异常。 | HttpRequest.is_secure() | 如果请求是安全的,即使用HTTPS进行的,则返回True。 | HttpRequest.is_ajax() | 如果请求是通过XMLHttpRequest发出的,则返回True。 |
Django HttpRequest 示例// views.py // urls.py 启动服务器并访问浏览器。 它在浏览器上显示请求方法名称。 输出  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) | 它用于将给定的header名称设置为给定的值。 | 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应用程序中的响应。
|