Flask:获取模块中每个视图类的URL
我正在尝试建立一个包含所有网址及其对应的视图或方法视图类的列表。每个视图可能有两个或更多的网址。我不确定是从类的角度出发,还是从网址映射开始。我的困惑在于,如果从类开始,url_for 只会返回一个网址,而端点名称可能和类或方法的名称不同。这是为了构建 API 文档,似乎是以网址为关键点(供最终用户使用)。
举个例子:
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()
这里的目标是能够对模块进行自省,获取一个列表,列出所有重定向到该视图类或函数的网址。
2 个回答
-1
另一种方法是使用类似这样的东西。你可以把一个视图绑定到多个网址上。
@app.route('/short/')
@app.route('/short/<bar>')
def dispatch_request(bar=None):
pass
2
我在想像下面这样的代码:
rules = app.url_map._rules
for rule in rules:
print rule.endpoint, rule, rule.defaults
是否能帮你获取所需的信息。你可以在Werkzeug的文档中了解更多内容。