flask 蓝图列出路线

问题描述 投票:0回答:2

我有一个带有以下树的烧瓶应用程序:

root/
  - modules/
    __init__.py
    - common/
        __init__.py
    - citrixlb/
        __init__.py # blueprint code
        citrixlb.py # module class
    - aws/
        __init__.py # blueprint code
        aws.py      # module class

所以我想知道,有没有一种方法可以动态列出所有蓝图的所有路线?

我的

root/__init__.py
里有这个:

# import our modules
from modules.citrixlb import *
from modules.aws import *

app.register_blueprint(aws)
app.register_blueprint(citrix)

如果我可以动态列出所有蓝图的所有路线,我可以自动生成链接。

示例:

下拉:

AWS

  • /aws

  • /aws/ec2

  • /aws/subnets

python python-2.7 flask blueprint
2个回答
15
投票
def get_bp_urls(blueprint):
    from flask import Flask
    temp_app = Flask(__name__) 
    temp_app.register_blueprint(blueprint)
    return [str(p) for p in temp_app.url_map.iter_rules()]

0
投票

如果有人正在寻找一个没有那么多代码的更短的解决方案。您只需运行命令

flask routes

您可以运行

flask --help
查看命令帮助,您可能会注意到在最终命令中您会看到
routes
,其中显示了应用程序的路线。

我希望这有帮助。

我在文档中查找是否可以获得此命令的描述,但我找不到它。这就是为什么我没有留下文档链接。

© www.soinside.com 2019 - 2024. All rights reserved.