当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python Django Client.get用法及代码示例


本文介绍 django.test.Client.get 的用法。

声明

get(path, data=None, follow=False, secure=False, **extra)

对提供的 path 发出 GET 请求并返回 Response 对象,如下所述。

data 字典中的键值对用于创建 GET 数据负载。例如:

>>> c = Client()
>>> c.get('/customers/details/', {'name': 'fred', 'age': 7})

…将导致对 GET 请求的评估等效于:

/customers/details/?name=fred&age=7

extra 关键字参数参数可用于指定要在请求中发送的标头。例如:

>>> c = Client()
>>> c.get('/customers/details/', {'name': 'fred', 'age': 7},
...       HTTP_ACCEPT='application/json')

…将 HTTP 标头 HTTP_ACCEPT 发送到详细信息视图,这是测试使用 django.http.HttpRequest.accepts() 方法的代码路径的好方法。

CGI 规范

通过**extra 发送的标头应遵循CGI 规范。例如,在从浏览器到服务器的 HTTP 请求中模拟不同的 “Host” 标头应作为 HTTP_HOST 传递。

如果您已经拥有 URL 编码形式的 GET 参数,则可以使用该编码而不是使用 data 参数。例如,之前的 GET 请求也可以构成为:

>>> c = Client()
>>> c.get('/customers/details/?name=fred&age=7')

如果您提供的 URL 同时包含编码的 GET 数据和数据参数,则数据参数将优先。

如果您将follow 设置为True,则客户端将遵循任何重定向,并且将在包含中间url 和状态代码的元组的响应对象中设置redirect_chain 属性。

如果您有一个 URL /redirect_me/ 重定向到 /next/ ,该 URL 重定向到 /final/ ,这就是您所看到的:

>>> response = c.get('/redirect_me/', follow=True)
>>> response.redirect_chain
[('http://testserver/next/', 302), ('http://testserver/final/', 302)]

如果将 secure 设置为 True,客户端将模拟 HTTPS 请求。

相关用法


注:本文由纯净天空筛选整理自djangoproject.com大神的英文原创作品 django.test.Client.get。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。