Python/Flask - 使“/index”重定向到“/”

Posted

技术标签:

【中文标题】Python/Flask - 使“/index”重定向到“/”【英文标题】:Python/Flask - Make "/index" redirect to "/" 【发布时间】:2021-08-09 00:51:27 【问题描述】:

我有一个包含两个网址的索引页面:

@app.route('/')
@app.route('/index')
def index():
    return render_template('index.html')

当我转到https://localhost/ 时,它工作正常,但https://localhost/index 也是有效的。我希望 https://localhost/index 始终重定向到 https://localhost/ 而不必执行以下操作:

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/index')
def index_redirect():
    return redirect(url_for('index'))

【问题讨论】:

我不明白。如果第一个示例有效(并且确实有效),那么问题是什么? 您能解释一下“重定向”是什么意思吗? HTTP 术语有一个特定的含义,返回 301 或 302 状态码并返回一个新的location,但听起来这不是你想要的,那么,你想要什么? 【参考方案1】:

当您说“不必做这样的事情”时 - 这正是您需要做的。如果第一个示例不可接受,您只需将浏览器重定向到有效的 URL。

如果您不想访问服务器两次,我想您可以使用 javascript 的 history.replaceState() 来更改 URL 并摆脱 /index。但这不是您可以在 Flask 中执行的操作。

【讨论】:

【参考方案2】:

我认为flask.redirect 是您正在寻找的。​​p>

可以找到flask.redirect的官方文档here

您也可以在服务器级别处理此问题。以下是uwsgi 的示例 和nginx

【讨论】:

以上是关于Python/Flask - 使“/index”重定向到“/”的主要内容,如果未能解决你的问题,请参考以下文章

python(flask)+apscheduler定时邮件重发两次的问题

Heroku:Python Flask 应用程序 - 自动从 https 重定向到 http

python flask 报错求助

OpenCV利用Flask+Python+OpenCV实现摄像头读取图像帧网页视频流

python flask安装

python flask-sqlalchemy如何设置使自动建的mysql表字符集charset为utf8