Flask可以有可选的URL参数吗?

2024-03-29 00:53:59 发布

您现在位置:Python中文网/ 问答频道 /正文

是否可以直接声明flask URL可选参数?

目前我正在按以下方式进行:

@user.route('/<userId>')
@user.route('/<userId>/<username>')
def show(userId, username=None):
    pass

我怎么能直接说username是可选的?


Tags: none声明urlflask参数defshow方式
3条回答

如果你像我一样使用烧瓶,也可以这样:

api.add_resource(UserAPI, '/<userId>', '/<userId>/<username>', endpoint = 'user')

a然后在资源类中:

class UserAPI(Resource):

  def get(self, userId, username=None):
    pass

几乎与几个月前Audrius编写的一样,但是您可能会发现它在函数头中的默认值更具可读性—就像您在python中习惯的那样:

@app.route('/<user_id>')
@app.route('/<user_id>/<username>')
def show(user_id, username='Anonymous'):
    return user_id + ':' + username

另一种方法是写作

@user.route('/<user_id>', defaults={'username': None})
@user.route('/<user_id>/<username>')
def show(user_id, username):
    pass

但我猜你想写一个单独的路由并将username标记为可选?如果真是这样的话,我想这是不可能的。

相关问题 更多 >