Flask重定向网址与锚点

时间:2014-02-05 16:59:50

标签: python flask anchor

我在使用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中使用带锚点的重定向?

Flask版本0.10.x

2 个答案:

答案 0 :(得分:4)

如果您的目标是重定向到在网址中预先选择了锚点的网页,我认为问题可能与您在&#39; url_for&#39;中传递的功能有关。以下是我尝试做你所描述的事情。

<强> 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

答案 1 :(得分:1)

一种简短而简单的方法是

$3

代替

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

之所以有效,是因为return redirect(url_for('hello_world',_anchor='my_anchor')) 返回端点的字符串。