You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask对象无‘get’属性报错:工厂模式下测试请求问题排查

解决Flask测试中AttributeError: 'Flask' object has no attribute 'get'的问题

你猜的没错!这个错误的核心原因就是不能直接用Flask应用对象发起HTTP请求,必须使用Flask专门提供的测试客户端来模拟请求行为。

Flask的Flask实例本身并没有get方法,这个方法是测试客户端的专属功能——它的作用就是模拟浏览器向你的应用发起GET、POST这类HTTP请求,帮你验证接口的响应是否符合预期。

给你修改一下test.py的代码,调整成正确的测试写法:

首先在setUp方法里创建测试客户端:

def setUp(self):
    self.app = create_app('testing')
    self.ctx = self.app.app_context()
    self.ctx.push()
    # 创建测试客户端,这是发起请求的关键
    self.client = self.app.test_client()
    db.drop_all()
    db.create_all()

然后修改test_index_page方法,用客户端发起请求并验证状态码:

def test_index_page(self):
    # 用测试客户端发起GET请求
    response = self.client.get("/")
    # 验证响应的状态码是否为200
    assert response.status_code == 200

另外还要提醒你:之前的代码里直接把self.app.get("/")和200对比,除了用错对象之外,就算用对了客户端,也不能直接拿响应对象和整数比——客户端返回的是Flask的响应对象,你需要通过它的status_code属性来获取状态码数值。

内容的提问来源于stack exchange,提问作者user5948213

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:52:59