参考:
https://werkzeug.palletsprojects.com/en/1.0.x/routing/?highlight=routing#werkzeug.routing.MapAdapter
class werkzeug.routing.MapAdapter(map, server_name, script_name, subdomain, url_scheme, path_info, default_method, query_args=None)
通过Map.bind()
和Map.bind_to_environ()
返回,主要用于URL的匹配
参数 | 描述 |
---|---|
allowed_methods(path_info=None) | |
build(endpoint, values=None, method=None, force_external=False, append_unknown=True) | |
dispatch(view_func, path_info=None, method=None, catch_http_exceptions=False) | |
get_host(domain_part) | |
make_alias_redirect_url(path, endpoint, values, method, query_args) | |
match(path_info=None, method=None, return_rule=False, query_args=None, websocket=None) | |
test(path_info=None, method=None) |
from werkzeug.routing import Map, Rule
m = Map([
Rule('/', endpoint='index'),
Rule('/downloads/', endpoint='downloads/index'),
Rule('/downloads/<int:id>', endpoint='downloads/show')
])
# 绑定域名信息,或者bind_to_environ(environ, server_name=None, subdomain=None)
# 自动绑定域名信息
urls = m.bind("example.com", "/")
# 通过url获得endpoint
urls.match("/downloads/") # ('downloads/index', {}) 格式是 (endpoint,{args})
urls.match("/")
urls.match("/downloads/42")
# 通过endpoint获得url
urls.build("index", {})
urls.build("downloads/show", {'id': 42})
urls.build("downloads/show", {'id': 42}, force_external=True)