flask.url_for(endpoint, **values)
这endpoint
件事对我来说似乎很神奇。它的行为方式如下:
dothat
可以通过以下方式获取修饰的方法url_for('dothat')
views.dothat
url_for('dothat')
url_for('myapp.views.dothat')
因此,如果不是完全限定的方法名称,Flask将作为端点使用什么?
瓶并没有端点使用模块名。它只是默认为函数名称。
如果您使用相同的名称注册两个不同的功能(例如,在两个不同的模块中),AssertionError
则会引发异常:
raise AssertionError('View function mapping is overwriting an '
'existing endpoint function: %s' % endpoint)
在这种情况下,您可以指定一个明确的端点名称:
@app.route('/', endpoint='alt_homepage')
def homepage():
pass
请参阅@Flask.route()
文档:
端点–已注册URL规则的端点。Flask本身将视图函数的名称假定为端点
当您使用@app.route()
装饰器注册视图时,将确定端点名称(除非您明确设置了一个名称),并将其与路由注册一起存储。url_for()
使用路由注册来查找针对该名称注册的所有路由,并找到最匹配您还传递到参数的路由url_for()
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句