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

Flask使用flask_restful启动报错'Api' object has no attribute 'record'如何解决

报错根因与修复方案

1. AttributeError 报错解决

报错的核心原因是覆盖了原生Flask应用实例:
你代码中第一行生成的app是Flask框架的原生应用实例,第二行直接把Api实例赋值给了同名的app变量,导致第三行初始化第二个Api实例web时,传入的参数已经变成了Api对象而非Flask原生对象,而Api初始化要求传入的参数必须是Flask应用或者蓝图实例,因此触发了找不到record属性的报错。

修复后的__init__.py代码如下:

from flask import Flask
from flask_restful import Api

# 保留原生Flask应用实例,不要覆盖
app = Flask(__name__, template_folder='views')
# 给Api实例起独立的变量名
api = Api(app, prefix='/api')
web = Api(app)

from app import routes

如果你的路由需要分别注册到两个Api实例上,在routes文件里调用对应的api.add_resource()或者web.add_resource()方法注册接口即可。

2. 未解析导入报错解决

该报错属于IDE路径识别问题,按如下步骤处理即可:

  • 确认你的项目目录结构符合Flask包规范,参考结构:
项目根目录/
├── app/
│   ├── __init__.py
│   ├── routes.py
  • 在IDE中把项目根目录标记为源文件根目录:PyCharm里右键根目录→Mark Directory as→Sources Root;VSCode里在settings.json中配置python.analysis.extraPaths,添加你的项目根目录路径。
  • 不要将项目启动文件放在app包内部,统一放在项目根目录下。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 10:48:00