Flask如何将多级路径URL重命名为简洁路径?
解决Flask URL重定向问题
问题分析
你需要将形如 page/folder_1/folder_2.../folder_n/finfolder.html 的URL统一映射到 page/different_name,原代码存在两个核心问题:视图函数返回格式错误,且误用了不存在的rename方法。
正确实现代码
from flask import Flask, render_template, redirect, url_for app = Flask(__name__) # 处理旧URL,重定向到新URL @app.route('/page/<path:old_path>') def redirect_old_url(old_path): # 重定向到新的路由地址,浏览器地址栏会同步更新 return redirect(url_for('new_page')) # 新URL对应的视图函数 @app.route('/page/different_name') def new_page(): # 渲染目标页面模板,替换为你实际需要的模板文件 return render_template('finfolder.html') if __name__ == '__main__': app.run(debug=True)
代码说明
- 用
<path:old_path>匹配/page/之后的任意层级路径,完全覆盖你提到的多级文件夹+HTML文件的URL格式。 - 通过
redirect配合url_for实现旧URL到新URL的跳转,确保浏览器地址栏显示page/different_name。 new_page函数负责返回实际要展示的页面内容,你可以根据需求修改render_template的参数。
如果不需要地址栏跳转,仅希望新旧URL返回相同内容,可简化为:
@app.route('/page/<path:old_path>') @app.route('/page/different_name') def unified_page(): return render_template('finfolder.html')
这种方式下,访问新旧URL都会返回相同内容,但地址栏会保留原访问路径。
内容的提问来源于stack exchange,提问作者AdAdAd
相关产品推荐
相关产品推荐

