我在使用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
答案 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'))
返回端点的字符串。