首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django测试client.get()返回302个代码而不是200个

Django测试中的client.get()方法返回302状态码而不是200状态码的原因可能是重定向。当服务器接收到一个GET请求时,如果该请求需要进行重定向,服务器会返回一个302状态码,告诉客户端需要进行重定向操作。这通常发生在需要用户进行身份验证或者访问受限资源时。

在Django中,client.get()方法模拟了一个GET请求,并返回服务器的响应。如果该请求需要进行重定向,client.get()方法会返回一个包含重定向信息的响应对象,其中包括状态码302和重定向的目标URL。

要解决这个问题,可以使用follow=True参数来告诉client.get()方法在遇到重定向时自动跟随重定向。这样,client.get()方法将返回重定向后的页面的响应,其中包含状态码200。

下面是一个示例代码:

代码语言:python
代码运行次数:0
复制
from django.test import TestCase

class MyTestCase(TestCase):
    def test_my_view(self):
        response = self.client.get('/my-view/', follow=True)
        self.assertEqual(response.status_code, 200)

在上面的示例中,follow=True参数告诉client.get()方法在遇到重定向时自动跟随重定向。然后,我们可以使用assertEqual()方法来断言返回的状态码是否为200。

关于Django测试客户端的更多信息,您可以参考腾讯云的Django测试客户端文档

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Django -- 快速测试&页面美化

类似于管理模板文件,我们同样可以把样式文件直接放入到demo_app/static文件夹中--不是创建另一个demo_app的子文件夹,这样做的弊端就是因为Django只会使用第一个找到的静态文件,如果你在其他应用中有一个相同名字的静态文件...---- 测试 测试普通方法 按照Django的要求,Django应用的测试应该写在应用的test.py文件中,测试系统会自动的在所有以 tests 开头的文件里寻找并执行测试代码。...cat对象,Django 会为测试代码自动创建一个临时数据库,当测试代码运行结束后,会自动删除,所以,我们测试代码不会对真实数据库有任何影响。...Process finished with exit code 0 我们通过 client.get('/demo_app/') 发送了一个get请求,通过返回结果的response.content 和...response.status_code分别返回了响应内容 和 响应结果代码

1.4K20

django 1.8 官方文档翻译: 1-2-5 编写你的第一个Django应用,第5部分

测试是检查你的代码是否正常运行的简单程序。 测试可以划分为不同的级别。 一些测试可能专注于小细节(某一个模型的方法是否会返回预期的值?)...检查起来‘似乎正常工作’可能意味着你需要运用二十种不同的测试数据来测试代码的功能,仅仅是为了确保你没有搞砸某些事 —— 这不是对时间的有效利用。...测试使你的代码更受欢迎 你可能已经创建了一个堪称辉煌的软件,但是你会发现许多其他的开发者会由于它缺少测试程序拒绝查看它一眼;没有测试程序,他们不会信任它。...测试能够减少同事在无意间破坏你的代码的机会(和你在不知情的情况下破坏别人的代码的机会)。 如果你想在团队中做一个好的Django开发者,你必须擅长测试! 基本的测试策略 编写测试有很多种方法。...Django测试客户端 Django提供了一个测试客户端来模拟用户和代码的交互。我们可以在tests.py 甚至在shell 中使用它。

38920
  • Django 1.10中文文档-第一个应用Part5-测试

    如果你学习Django就是仅仅是为了创建一个小小投票应用,那么涉足自动化测试显然没有必要。 但如果不是这样,现在是一个很好的学习机会。...测试使您的代码更受欢迎 你可能已经创建了一个堪称辉煌的软件,但是你会发现许多其他的开发者会由于它缺少测试程序拒绝查看它一眼;没有测试程序,他们不会信任它。...字段的值是30天后的未来日期 然后利用assertIs()方法,它发现was_published_recently()返回了True,不是我们希望的False 这个测试通知我们哪个测试失败了...Django测试客户端 Django提供了一个测试客户端用来模拟用户和代码的交互。我们可以在tests.py甚至shell中使用它。...()'方法,不是URL硬编码 >>> from django.urls import reverse >>> response = client.get(reverse('polls:index'))

    99960

    Web | 是时候试试Django 3.1新的异步视图功能了

    随着Django 3.1最终支持异步视图,异步中间件和测试,现在是学习使用它的好时机。这篇文章探讨了如何开始使用Django 3.1提供的新异步视图。 ?...如果您使用Django内置开发测试服务器,你的项目可以启动,但实际上它不会真正异步运行它们,因此我们将使用Uvicorn来启动你的项目。...现在打开你的浏览器,访问http://localhost:8000/,你将看到: Hello, async Django! 这不是世界上最令人兴奋的事情,但是,嘿,这是一个开始。...当你希望使用Django异步视图提升你的代码效率时,不仅视图需要是异步的,其调用的任务函数也必须是异步的。...考虑一下代码中具有简单过程的视图,这些视图不一定需要直接向最终用户返回任何内容,可以将这些视图快速转换为异步视图。

    2.9K20

    一代版本一代神:利用Docker在Win10系统极速体验Django3.1真实异步(Async)任务

    进入项目目录可以发现,熟悉的入口文件mange.py已经消失不见,新增了asgi.py文件用来启动项目,这里我们使用异步服务器uvicorn来启动新版Djangouvicorn对windows系统支持不够友好...-it --rm -p 8000:8000 django31     访问http://localhost:8000     没有问题,还记得去年我们曾经使用Siege对Django2.0版本进行压力测试吗...longest_transaction": 1.13, "shortest_transaction": 0.45 } liuyue:~ liuyue$     从测试结果看...asyncio.sleep(1) print(num) async with httpx.AsyncClient() as client: r = await client.get...通过动图我们可以发现,后端还在执行阻塞任务,但是前段已经通过异步多路复用将请求任务结果返回至浏览器了。

    56120

    FastAPI 之自动化测试数据库接口

    今天的文章分享如下在 FastAPI 框架下,使用 pytest 来自动化测试数据库相关的接口,文章的最后给出全部代码。...需要说明的是,后端服务基本是离不开关系型数据库的,我之前是使用 DjangoDjango 的 ORM 太优秀了,以至于我从 Django 转 FastAPI 有点很不适应。...配置代码测试用例运行之前运行,销毁代码测试用例运行之后执行。function 是 fixture 参数的默认值。...crud.get_items(db) assert len(items) == 3 def test_list_items(items, client): response = client.get...完整代码 不能选择 sqlite 数据库进行测试,因为它不支持并发访问。 代码的数据库配置为 mysql,用户名、密码、数据库名请自行修改后执行。

    1.2K20

    游戏《蔚蓝山》教我的编程道理

    Django 为例,你可以使用 django.test.Client 来轻松编写这类测试: # 以下代码片段来自 Django 官方文档 import unittest from django.test...('/customer/details/') # 测试某次请求是否返回了 200 状态码 self.assertEqual(response.status_code, 200...Django 框架有一条设计哲学叫 “Don't repeat yourself (DRY)” - “不要重复你自己”。多数情况下,我们说 DRY 是指不要写重复代码。...作为对比,让我们看看利用单元测试的开发流程是什么样的: 修改后端代码,增加新角色:“主编” 在“主编”相关的功能点,增加权限保护代码片段 编写与功能代码相关的单元测试代码,与 2 同步进行 执行单元测试...事实上,自从若干年前养成了写单元测试的习惯,我就一直坚持至今。那么,我到底是因为什么在写单元测试呢? 单元测试让我的代码 Bug 更少? 单元测试帮助我写出扩展性更强的代码

    80020

    RTSP视频智能分析平台EasyNVR多nginx启动时getlivesessions接口如何返回所有nginx数据?

    测试多nginx启动期间,视频智能分析平台EasyNVR的getlivesessions接口正常来说应该会返回所有nginx的数据,但实际上只返回了默认nginx的数据,没有其他nginx的数据。...该问题就是golang只需要向默认的nginx接口请求,并返回了数据。 ? 此处是不开启多nginx时,golang只需要向默认的nginx的接口请求然后返回数据; ? ?...time.Second, } resp := &http.Response{} var err error if index == 0 { resp, err = client.Get...(fmt.Sprintf("http://127.0.0.1:%d/getlivesessions", GetHTTPPort())) } else { resp, err = client.Get...TSINGSEE青犀视频其他视频平台比如EasyGBS、EasyCVR等都是支持多nginx启动的,如果有朋友不明白,可以关注我们,如需测试或者了解更多,也可以直接联系我们,欢迎大家的咨询。

    31920

    FastAPI(43)- 基于 pytest + requests 进行单元测试

    FastAPI 的单元测试 对于服务端来说,通常会对功能进行单元测试,也称白盒测试 FastAPI 集成了第三方库,让我们可以快捷的编写单元测试 FastAPI 的单元测试是基于 Pytest + Request...requests 所有方法、属性 重写了 Session.requests 方法 重写了 requests 方法,不过只是加了一句 url = urljoin(self.base_url, url) url 拼接代码...语句来调用上下文管理器哦 .get() 方法 上面代码 client.get(),直接调用的就是 Session 提供的 get() 方法啦! 复杂的测试场景 服务端 #!...item_id not in fake_db: raise HTTPException(status_code=404, detail="找不到 item_id") # 3、找到数据则返回...HTTPException(status_code=400, detail="找不到 item_id") # 3、添加数据到数据库 fake_db[item.id] = item # 4、返回添加的数据

    1.6K10

    【Flask】当企业级项目在大多数视图登录性能优化以及测试覆盖的详细解决方案

    测试中最方便的方法是使用客户端发出POST请求并将其发送到登录视图。不是每次都写,而是写一个类,使用class方法来完成,并使用固件将其传递给每个被测试的客户端。...要测试页面是否成功呈现,请发出一个简单的请求,并检查是否返回了200OK状态_代码如果渲染失败,Flask将返回500内部服务器错误代码。...Flask提供了一个测试客户端,它可以模拟向应用程序发送请求并返回响应数据。...函数中的代码仅在调用函数时运行。分支中的代码(如if块中的代码)只有在满足条件时才会运行。测试应涵盖每个功能和每个分支。...Pytest将匹配客户端固件函数,调用此函数,并将返回值传递给测试函数。

    1.1K20

    python新一代网络库HTTPX

    背景 最近在写一个自动化脚本,从某电商网站批量获取手机设备信息参数,基于python + requests完成脚本开发,但是实际运行效率上并不是特别满意。...到处都有严格的超时设置 全类型注释 100% 的测试覆盖率 github介绍:https://github.com/encode/httpx 文档介绍:https://www.python-httpx.org...这意味着当向同一主机发出多个请求时,Client将重用底层TCP连接,不是为每个请求重新创建一个。 这可以带来显著的性能提升: 减少请求之间的延迟(无握手)。 减少 CPU 使用率和往返次数。...代码如下: Client是作为上下文管理器。with这将确保在离开块时正确清理连接。...', headers=headers) 或者,可以使用以下命令显式关闭连接池不使用阻塞.close(): client = httpx.Client() try: client.get('https

    1.1K20

    Flask项目发布流程

    安装以后就能在任何位置使用flask run来启动应用了,不仅仅是在flask-turorial目录下。 跑单元测试 单元测试不能保证程序没有Bug,但却是在开发阶段保障代码质量的有效手段。...tempfile.mkstemp()创建了一个临时文件,返回文件描述符和文件路径。并且把临时文件路径传入了DATABASE,接着插入测试数据。测试结束后关闭和移除临时文件。...fixture的yield前面的代码相当于setup,yield后面的代码相当于teardown。 TESTING: True将Flask置为测试模式,Flask内部会进行一些调整以便于进行测试。...client 调用app.test_client返回一个测试客户端,可以用这个客户端给应用发送请求。...runner 调用app.test_cli_runner()返回一个可以执行应用已注册命令的runner。

    95910

    为异步Python代码编写单元测试

    由此带来的一个问题就是异步 Python 代码的单元测试的编写问题。...测试异步函数 编写测试代码 Python 的异步函数返回的是一个协程对象(coroutine),需要在前面加await才能获取异步函数的返回值,只有在异步函数中才能使用await语句,这也意味着一般异步函数的测试代码本身也需要是一个异步函数...Pytest 是一个广为流行的 Python 测试框架,借助pytest-asyncio插件,我们可以更方便地编写异步测试代码。...为了避免单元测试访问外部网络,同时消除在不同机器或者网络环境下getIP函数每次返回结果会不一样的影响,我们可以mock调网络请求部分的函数调用。 先看一下使用requests库的同步版本。...总结 在这里总结一下异步 Python 代码的单元测试的要点: 测试代码也需要是异步代码 可以通过pytest-asyncio插件配合pytest简化异步测试代码的编写 对于需要mock的异步对象,可以指定

    1.5K30

    Python新一代爬虫请求库!!

    除了上面的发送表单格式数据之外,发送 json 类型数据时候使用 json 参数 requests 中我们习惯使用 requests.Session(), 在 httpx 中用 httpx.Client() 来代替,代码如下...在向同一主机发出多个请求时,Client 将重用底层 TCP 连接,不是为每个请求重新创建一个。...request': [log_request], 'response': [log_response]}) 如在请求完全准备好之后,但还未被发送到网络之前会调用 log_request 函数 在网络获取响应返回之后...HTTP/2 协议, 可通过下面代码判断 client = httpx.AsyncClient(http2=True) response = await client.get(...) print(response.http_version...以上便是 httpx 的常见用法,和 requests 用法是不是非常的相似,不过 httpx 的功能更加丰富,赶紧用起来!

    1.3K50
    领券