flask可选URL参数不生效

3 投票
1 回答
3766 浏览
提问于 2025-04-17 17:38
@mod.route('/participate/<survey_id>/', defaults = {'work_id':None}, methods = ['GET','POST'])
@mod.route('/pariicipate/<survey_id>/<work_id>', methods = ['GET', 'POST'])
def participate(survey_id, work_id):
   /* do_something .. */

我可以访问 http://localhost:5000/participate/512dc365fe8974149091be1f 或者 http://localhost:5000/participate/512dc365fe8974149091be1f/,而且如果我打开调试工具,我可以看到 work_id = None

但是如果我尝试访问 http://localhost:5000/participate/512dc365fe8974149091be1f/512dc365fe8974149091be1f 或者 http://localhost:5000/participate/512dc365fe8974149091be1f/512dc365fe8974149091be1f/,我就会得到404错误。

这是为什么呢?我是不是在路由规则上做错了什么?

1 个回答

2

你的第二个路由写错了一个字哦 :)

@mod.route('/pariicipate/<survey_id>/<work_id>', methods = ['GET', 'POST'])

应该是

@mod.route('/participate/<survey_id>/<work_id>', methods = ['GET', 'POST'])

撰写回答