You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask动态嵌套蓝图路由如何实现带<den_id>参数的多级路径

调整方案如下

1. 修改子蓝图注册配置

在将posts蓝图注册到dens蓝图时,额外传入带动态参数den_id的url_prefix,修改后的注册逻辑:

from . import dens
from . import posts

# 新增带<den_id>的前缀,会自动拼接在dens蓝图前缀和posts蓝图前缀之间
dens.bp.register_blueprint(posts.bp, url_prefix='/<int:den_id>')
app.register_blueprint(dens.bp)

2. 调整posts蓝图下的视图函数

路由中新增的den_id动态参数需要在视图函数中声明接收,可根据业务需求选择是否使用该参数。以删除接口为例,修改后代码:

bp = Blueprint('posts', __name__, url_prefix='/posts')

# 最终匹配路径为 /dens/<den_id>/posts/<int:id>/delete
@bp.route('/<int:id>/delete', methods=('POST',))
@login_required
def delete(den_id, id):
    get_post(id)
    db = get_db()
    db.execute('DELETE FROM posts WHERE id = ?', (id,))
    db.commit()
    # 若跳转目标路由需要den_id,可直接传入该参数即可
    return redirect(url_for('dens.index'))

补充说明

如果后续需要生成posts蓝图下的路由地址,调用url_for时需要额外传入den_id参数,示例如下:

url_for('dens.posts.delete', den_id=当前分区ID, id=待删除帖子ID)

内容的提问来源于stack exchange,提问作者tsainez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 19:36:04