1.Flask提供url_for()辅助函数,可以使用程序URL映射中保存的信息生成URL。url_for()函数最简单的用法是以视图函数名(或者app.add_url_route()定义路由时使用的端点名)作为参数,返回对应的URl。
2.源码:
def url_for(endpoint, **values):
"""Generates a URL to the given endpoint with the method provided.
:param endpoint: the endpoint of the URL (name of the function)
:param values: the variable arguments of the URL rule
"""
return _request_ctx_stack.top.url_adapter.build(endpoint, values)
可见,此辅助函数是调用了werkzeug中_request_ctx_stack这个LocalStack对象获取堆栈顶部的url_adapter.build方法,传入endpoint端点和values参数实现的。