在app init我动态加载来自数据库的网址,并添加app.add_url()
。
由于行为类似于CMS,我的用户可以删除或更改某些页面的URL,因此我有时需要删除映射或重新加载所有URL映射。
有没有人知道这样做的方法?
由于
答案 0 :(得分:1)
Flask(依赖于Werkzeug)旨在让用户轻松添加而不是删除路由。但是您可以尝试自己删除路线;每条路线都会添加到Flask.add_url_rule()
method中的url_map
。从Map._rules
和Map._rules_by_endpoint
移除路线(参见Map.add()
方法)并使用_remap
致电Map.update()
可能就足够了。
但是这通常不起作用,例如在创建一个委托给单独dict
中的视图函数的路径时:
_routes = {}
@app.route('/<path:url>', marthods=['GET', 'POST'])
def route(url):
handler = _routes.get(url, None)
if handler is not None:
return handler()
abort(404)