Flask:获取模块中每个View类的URL

时间:2013-02-13 05:56:10

标签: python url flask introspection

我正在尝试构建所有网址及其各自的View或MethodView类的列表。每个视图可能有2个或更多网址。我不确定是通过从类末端开始还是通过url映射来完成此操作。我从类开始的问题是url_for只返回一个url,端点名称可能与类/方法名称不同。这是用于构建api文档,它似乎是url的键(对于最终用户)。

示例:

app = flask.Flask(__name__)

class Bar(View):

    def dispatch_request(self):
        pass
app.add_url_rule('/short/', view_func=Bar.as_view('bar'))
app.add_url_rule('/short/<bar>/', view_func=Bar.as_view('bar'))


if __name__ == '__main__':
    app.run()

这里的目的是能够对模块执行内省并返回列表查看重定向到该View类或函数的所有URL。

2 个答案:

答案 0 :(得分:2)

我想知道是否有:

rules = app.url_map._rules
for rule in rules:
    print rule.endpoint, rule, rule.defaults

能为您提供所需的信息。您可以阅读更多信息in the Werkzeug documentation

答案 1 :(得分:-1)

另一种方法是使用这样的东西。您可以将视图绑定到多个URL。

@app.route('/short/')
@app.route('/short/<bar>')
def dispatch_request(bar=None):
    pass