带有锚的Flask重定向URL

问题描述 投票:15回答:2

我在从python代码重定向锚点时遇到一些问题。

我的代码:

func():
    ...
    redirect(url_for('my_view', param=param, _anchor='my_anchor'))

此重定向未将我重定向到#my_anchor。

在模板链接中,例如:

<a href="{{ url_for('my_view', param=param, _anchor='my_anchor') }}"></a>

效果很好...可能是烧瓶函数“重定向”中的问题。

如何在Flask中使用重定向和锚点?

烧瓶版本0.10.x

python flask anchor
2个回答
7
投票
如果您的目标是重定向到在url中预先选择锚的页面,我认为问题可能与您在'url_for'中传递的函数有关。以下是我尝试执行您描述的操作。

views.py

from flask import Flask from flask import redirect, url_for app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World!' @app.route('/myredirect') def my_redirect(): return redirect(url_for('hello_world',_anchor='my_anchor')) if __name__ == '__main__': app.run()
这不需要模板,一旦您击中/ myredirect,您将被重定向到/并使用锚点#my_anchor

[以$ python views.py开始查看并导航至http://127.0.0.1:5000/myredirect后,您最终以http://127.0.0.1:5000/#my_anchor结束


0
投票
一种简短而简单的方法是

return redirect(url_for('hello_world') + '#my_anchor')

代替

return redirect(url_for('hello_world',_anchor='my_anchor'))

这是有效的,因为url_for返回端点的字符串。
© www.soinside.com 2019 - 2024. All rights reserved.