Flask蓝图无法注册嵌套蓝图

2024-09-27 19:28:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建一个API,它有3条主要路径

  • /api1
  • /api2
  • /api3

我想要api2下的3条路线

  • /api2/路由1
  • /api2/路由2
  • /api2/线路3

所以我检查了关于嵌套蓝图的烧瓶文档

https://flask.palletsprojects.com/en/2.0.x/blueprints/#nesting-blueprints

我给这个编码:

bp1 = Blueprint("api1", __name__, url_prefix="/api1")
bp2 = Blueprint("api2", __name__, url_prefix="/api2")
bp3 = Blueprint("api3", __name__, url_prefix="/api3")

bp2_1 = Blueprint("api2_1", __name__, url_prefix="/route1")
bp2_2 = Blueprint("api2_2", __name__, url_prefix="/route2")
bp2_3 = Blueprint("api2_3", __name__, url_prefix="/route3")

app.register_blueprint(bp1)
app.register_blueprint(bp3)

bp2.register_blueprint(bp2_1)
app.register_blueprint(bp2)

当我运行它时,它会显示此错误

AttributeError: 'Blueprint' object has no attribute 'register_blueprint'

烧瓶仍然不支持嵌套蓝图吗?或者什么版本开始支持嵌套蓝图? 或者我应该如何实现嵌套的蓝图

我使用的是flask版本1.1.2


Tags: nameregisterappurlflask路由prefix烧瓶
1条回答
网友
1楼 · 发布于 2024-09-27 19:28:37

您必须先注册子蓝图,然后才能将父蓝图注册到应用程序

bp2.register_blueprint(bp2_1)
bp2.register_blueprint(bp2_2)
bp2.register_blueprint(bp2_3)

app.register_blueprint(bp2)

您可以在烧瓶documentation上找到更多详细信息

但我认为这只适用于烧瓶2.x。所以你必须升级你的版本

相关问题 更多 >

    热门问题