前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Flask API 项目 Swagger 版本打架不兼容

Flask API 项目 Swagger 版本打架不兼容

作者头像
误入歧途
发布于 2025-04-22 00:18:31
发布于 2025-04-22 00:18:31
7600
代码可运行
举报
文章被收录于专栏:误入歧途误入歧途
运行总次数:0
代码可运行

Flask API 项目 Swagger 版本打架不兼容

1. 问题背景

在使用 Flask 3.0.0 时遇到以下问题:

  • 安装 flask_restful_swagger 时,它强制将 Flask 降级到 1.1.4,并导致其他依赖(如 flask-sqlalchemyflask-apispec)出现版本冲突。
  • 需要解决 Flask 版本兼容问题,并且集成 Swagger API 文档
2. 问题分析
  • flask_restful_swagger 是一个较为过时的库,已经不再更新,且与 Flask 3.x 版本不兼容。
  • flask-sqlalchemyflask-apispec 需要 Flask >= 2.2.5 版本,而 flask_restful_swagger 安装时强制降级 Flask 版本会导致兼容性问题。
3. 解决方案

为了解决版本冲突,采用以下方案:

  1. 安装 flask_restful_swagger 时会降级 Flask 版本
    • 在项目中,使用 flask_restful_swagger 的版本 0.20,它将 Flask 版本降级到 1.1.4
  2. 手动解决版本冲突
    • 安装完成后,立即 卸载 Flask 1.1.4 并安装 Flask 3.0.0,否则 flask-sqlalchemyflask-apispec 等插件会报错。

    具体步骤如下:

步骤一:安装兼容包

安装 flask_restful_swagger 最新版本(0.20):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install flask_restful_swagger
步骤二:安装Flask

卸载 Flask 1.1.4:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip uninstall flask

安装 Flask 3.0.0:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install flask==3.0.0
步骤三:配置 Flask 和 Flask-APISpec

应用配置 (__init__.py):

在程序文件 __init__.pyy 中进行以下配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from flask import Flask
from flask_apispec import FlaskApiSpec
from flask_restful import Api, Resource
from flask_sqlalchemy import SQLAlchemy
from flask_restful_swagger import swagger
from apispec import APISpec
from apispec.ext.marshmallow import MarshmallowPlugin

# 实例化 Flask 应用
app = Flask(__name__)

# 配置 OpenAPI 和 Swagger 文档
app.config.update({
    'APISPEC_SPEC': APISpec(
        title='My API',
        version='v1',
        plugins=[MarshmallowPlugin()],
        openapi_version='2.0.0'
    ),
    'APISPEC_SWAGGER_URL': '/swagger/',  # Swagger JSON
    'APISPEC_SWAGGER_UI_URL': '/swagger-ui/'  # Swagger UI
})

# 实例化 Flask-RESTful API
api = Api(app)
db = SQLAlchemy(app)

# 配置 FlaskApiSpec 用于注册 Swagger 文档
docs = FlaskApiSpec(app)
步骤四:定义资源和路由

通过使用 Flask-RESTfulflask-apispec 来定义 API 资源,并添加 Swagger 文档注解。

API 资源类

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class UserResource(Resource):
    @doc(description="获取用户详情",tags=[Book Resource])  # 文档注解
    def get(self):
        return {"message": "Hello, World!"}

将资源添加到 API

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
api.add_resource(BookResource, '/books/<int:book_id>')
docs.register(BookResource)  # 注册到 API 文档

上面代码中,@doc 注解为该接口生成文档说明,docs.register() 将资源添加到 Swagger 文档中。

步骤五:访问 Swagger 文档
  • 启动 Flask 应用后,访问 http://127.0.0.1:5000/swagger-ui/ 来查看自动生成的 Swagger UI
  • http://127.0.0.1:5000/swagger/ 返回的是 Swagger JSON 文档。
image-20250421164513411
image-20250421164513411
4. 总结
  • 通过手动卸载并重新安装 Flask 3.0.0,结合 flask-apispec,可以解决 flask_restful_swagger 与 Flask 3.0.0 的版本冲突问题,并实现现代的 API 文档生成功能。
  • 完整流程:
    1. 安装 flask_restful_swagger,它会将 Flask 降级到 1.1.4。
    2. 卸载 Flask 1.1.4 并重新安装 Flask 3.0.0
    3. 配置 Flask 和 Flask-APISpec 以生成 Swagger 文档。
    4. 定义 API 资源和路由,并通过 Swagger 生成 API 文档。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-04-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
5G 商用第三年:无人驾驶的“上山”与“下海”
新兴技术的诞生,总是在吹捧、看衰中起伏,或趋于沉寂,或蜕变重生——5G 技术也不例外。2022 年,是 5G 技术商用的第三年,经历过 2019 年的狂热,3 年后的 5G 市场回归了理性,人们不禁好奇,5G 的风,究竟吹向了哪里?
TVP官方团队
2023/01/05
5170
5G 商用第三年:无人驾驶的“上山”与“下海”
腾讯云发布5G远程实时操控产品“腾讯云无界”,与三一智矿签署战略合作协议,助力矿山作业效率安全双提升
11月3日,在武汉举行的腾讯数字生态大会上,腾讯云We5G正式5G远程实时操控产品及解决方案——“腾讯云无界”。该方案基于5G技术和腾讯实时音视频(TRTC)的融合,可实现时延100毫秒以内的车辆一对多集中远程实时控制,助力行业生产安全与效率双提升。在大会上,三一智矿科技有限公司(下称“三一智矿”)与腾讯云就智能矿山正式签署了战略合作协议。 三一智矿以“数字矿山、智慧矿山、绿色矿山”为理念,致力于露天矿无人驾驶机械设备,井工矿综采、综掘智能化机械设备,智慧矿山管理系统及AI算法云平台的开发,在智慧矿山
腾讯云音视频
2021/11/08
1.7K0
绿色数治开采工艺: 3D 可视化智慧矿山
2021 年 2 月底,国家矿山安监局综合司发布的《“十四五”矿山安全生产规划(征求意见稿)》中再次强调要“实时采集矿山安全监控、人员位置监测、视频监控等数据,建成一个连接各级用户、各类角色的矿山安全生产综合信息系统”。此外,根据自然资源部披露,2021 年我国将建 100 个初级智能化示范煤矿,到 2025 年,大型煤矿和灾害严重煤矿基本实现智能化;到 2035 年,各类煤矿基本实现智能化,构建多产业链、多系统集成的煤矿智能化系统,建成智能感知、智能决策的煤矿智能化体系,实现安全绿色、高效、智能化生产。
HT for Web
2021/10/22
1.5K0
绿色数治开采工艺: 3D 可视化智慧矿山
深度|火起来的矿区无人驾驶,能「活」下来吗?
作者 / 华卫 如果仔细观察今年的「自动驾驶遇冷」问题,就会发现,业界并未将其全盘否定,而是将预期变得更加现实。在自动驾驶仍存在长尾问题的时期,部分不存在公共安全隐患,又有望商业化落地的场景,仍会受到资本市场的青睐,「矿山场景」就是其中之一。 国外矿区自动驾驶商业化已超过10年,其中美国卡特彼勒在1996年就推出无人矿卡,日本小松在2008年就在其智利铜矿部署自动驾驶矿用车,铁矿石巨头力拓集团、澳大利亚铁矿石出口商FMG集团、巴西著名铁矿石生产和出口商淡水河谷等公司都有成熟的矿区无人驾驶解决方案和运营数
机器之心
2023/05/09
7010
深度|火起来的矿区无人驾驶,能「活」下来吗?
智慧矿山:煤矿智能化建设引领行业进步
2022年政府工作报告指出,加快发展工业互联网,建设数字信息基础设施,推进5G规模化应用,促进产业数字化转型。
物联网数据可视化PaaS平台
2022/03/24
5300
智慧矿山:煤矿智能化建设引领行业进步
中国最美煤矿长啥样?都安煤矿告诉你!
为践行“绿水青山就是金山银山”理念,按照宜农则农、宜林则林、宜草则草、宜水则水的原则,推进全县绿色矿山建设,都安县先后建成3个绿色矿山,该县将矿产资源开发利用、矿山地质环境治理及土地复垦方案统一编制、审查、实施,并加强对矿山生态环境保护与恢复治理方案和水土保持方案的审查,监督企业落实保护措施,确保生态保护措施落实到位,矿山“三废”得到有效处理,污染物排放达标。
万物皆可视
2022/02/23
7180
中国最美煤矿长啥样?都安煤矿告诉你!
创新引领,数字赋能,湖南创远高新助力矿山生产方式新变革
湖南创远高新机械有限责任公司(简称“湖南创远”)始建于2012年11月,作为国内唯一一家集采矿工艺、智能装备、集控平台于一体的智能矿山系统化解决方案服务商,湖南创远秉承“品质致胜,创新致远”的经营理念,肩负“将矿山人从恶劣高危的环境中解放出来”的企业使命,致力于推动和促进我国先进智能矿山装备集群发展,实现矿山安全、智能、绿色、高效开采,数字化赋能我国机械化、智能化采矿发展和智能矿山建设,公司经过十余年的执著追求和创新发展,正积极融入全球矿山产业生态,闪耀世界。
云上计算
2022/12/14
3200
创新引领,数字赋能,湖南创远高新助力矿山生产方式新变革
基于钻孔数据的三维地质模型可视化
智慧矿山是一个汇聚了多学科、多主题、多维空间信息的复杂系统,是在矿山地表和地下开采矿产资源的工程活动中所涉及的各种静、动态信息的全部数字化管理,智能分析,可视化展示,从而达到降本增效,实现企业利益的最大化。
万物皆可视
2022/05/05
1.3K0
基于钻孔数据的三维地质模型可视化
5G工业级网关助力打造智慧矿山
根据《中国5G垂直行业应用案例2022》最新年度报告,“5G+智慧矿山应用实践”作为优秀典型案例被收录其中,5G智慧矿山已经在煤矿行业慢慢普及开来,这不仅提高了生产效率,也保障了生产安全。
智慧物联小马
2022/05/09
7630
5G工业级网关助力打造智慧矿山
基于5G工业CPE打造智慧煤矿无人巡检监测应用
煤炭是我国重要的能源资源,对于煤炭的开采和利用也是我国重要的工业产业部分。得益于5G+物联网技术的发展普及,煤矿场景也迎来智能化升级,实现了包括智能采掘、智能调度、无人运输、无人巡检等新型应用,极大提升了煤矿采运产业的效率和质量。本篇就为大家简单讲讲基于5G工业CPE打造智慧煤矿无人巡检监测应用.
智慧物联小马
2023/10/26
2970
基于5G工业CPE打造智慧煤矿无人巡检监测应用
5G远控创新与探索,超低时延的远控传输
新知系列课程第二季来啦!我们将为大家带来全真互联时代下新的行业趋势、新的技术方向以及新的应用场景分享。本期我们邀请了腾讯云音视频专家工程师——白松灵,为大家分享5G远控技术创新探索以及腾讯云在超低延时传输上的技术实践。 5G是当前的新趋势。传统4G满足不了的很多需要更大带宽、更低延时的需求,比如云游戏、VR/AR、4K/8K、全景直播等需要超大带宽的应用,在4G下无法实现,通过5G则可以满足;而远程手术、远程会议、远程会诊、自动驾驶等超低延时的应用场景,在5G加持下也有了实现可能。 从下面的图表中也能看出
腾讯云音视频
2023/01/18
2.3K0
5G远控创新与探索,超低时延的远控传输
守护生产安全,大华的「解题思路」
编辑 | 余快 1980年5月,为了增强安全生产意识,我国第一次举办了“全国安全月”活动。
AI掘金志
2022/11/08
2950
解放人与设备距离,5G时代的远程操控该如何完成
物联网这个概念早在十多年前便已提出,其主要依托于移动通讯网络来实现其功能的传输。在过去物联网领域的一些设备控制场景中,我们或多或少都见到过远程控制技术的身影,但受限于当时的网络条件和技术场景,大部分应用都属于对设备的简单操作,并不会同步太多的现场实时信息。随着通讯技术的不断发展,以及5G技术的出现,智能化的生活也离大家越来越近。
毛峻岭
2021/11/03
2.2K1
SkeyeVSS矿山采盗监控系统科技化管控非法采矿
科技管矿是以数字化、网络化、智能化为基础,综合运用信息、网络、视频监控等科技手段,通过全面、快速、准确地获取视频信息,实现对矿产资源开发利用情况的有效监测监管。推进科技管矿对严厉打击无证矿山盗采行为,建立全方位监管格局,依法保护和合理开发利用矿产资源,维护矿产资源国家所有权益及良好的开发秩序,具有十分重要的意义和作用。
Openskeye
2023/04/17
4770
我们为什么要搞5G-A?
今天这篇文章,小枣君想和大家聊聊5G-A,也就是5G-Advanced。或者说,5.5G。
鲜枣课堂
2023/12/12
2310
我们为什么要搞5G-A?
借助5G智能网关实现无人化智慧农业应用
发展智慧农业是新时代的必由之路。依托5G+物联网技术赋能农业生产,能够实现更少的人员需求,更大面积的综合土地管理,更实时精细的生产环境监测,更智能的生产自主管控。
智慧物联小马
2022/12/19
6660
借助5G智能网关实现无人化智慧农业应用
干货!运营商5G专网应用十大经典案例分享
从2019年5G商用元年迄今倏忽三年过去,三大运营商斥巨资建设5G网络,高并发、低时延、大带宽的优势凸显,那么在千行百业的数字化转型过程中5G有哪些经典案例呢?整理了2022年世界5G大会上发布的十大经典案例(联通3个,电信3个,移动4个)分享给广大读者朋友。
悲了伤的白犀牛
2022/12/14
1.6K0
干货!运营商5G专网应用十大经典案例分享
低代码可视化平台加速智慧矿山系统建设
智慧矿山,是指基于现代煤矿智能化理念,将物联网、云计算、大数据、人工智能、自动控制、工业互联网、机器人化装备等与现代矿山开发技术深度融合,形成矿山全面感知、实时互联、分析决策、自主学习、动态预测、协同控制的完整智能系统,对矿山生产、职业健康与安全、技术支持与后勤保障等进行主动感知、自动分析、快速处理,实现矿井开拓、采掘、运通、分选、安全保障、生态保护、生产管理等全过程的智能化运行。
物联网数据可视化PaaS平台
2022/03/16
9250
低代码可视化平台加速智慧矿山系统建设
5G+智能化煤矿系统架构方案
煤矿智能化升级改造,是在双碳背景下推动能源行业高质量发展的重要手段。在传统煤矿应用场景中,普遍存在设备控制时延高、子系统协同性差、数据利用率低、决策依据少、智能终端匮乏等一系列问题。而当前已趋于成熟的5G技术,凭借大带宽、低时延、广连接的特性,和支持边缘计算、端到端数据传输的技术优势,为解决上述问题提供了有力支撑。
智慧物联小马
2022/06/13
5990
5G+智能化煤矿系统架构方案
5G智能网关在煤矿行业的应用优势
5G通信方式的特点是采用了网络切片的技术,将物理网络划分为多个虚拟网络。每个虚拟网络还可以根据不同项目和业务的时延、带宽、安全性、可靠性需求进行专项划分,从而高度灵活地应对不同的通信应用需求。
智慧物联小马
2021/08/19
7220
5G智能网关在煤矿行业的应用优势
推荐阅读
相关推荐
5G 商用第三年:无人驾驶的“上山”与“下海”
更多 >
LV.4
腾讯产品经理
目录
  • Flask API 项目 Swagger 版本打架不兼容
    • 1. 问题背景
    • 2. 问题分析
    • 3. 解决方案
      • 步骤一:安装兼容包
      • 步骤二:安装Flask
      • 步骤三:配置 Flask 和 Flask-APISpec
      • 步骤四:定义资源和路由
      • 步骤五:访问 Swagger 文档
    • 4. 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档