Python 允许在烧瓶URL中有多个可选参数

Python 允许在烧瓶URL中有多个可选参数,python,flask,Python,Flask,我有一个烧瓶URL,其中有两个独立的参数。我想运行同一个函数,要么不带参数,要么只带第一个参数,要么两个参数都带。如果没有设置特定的值,我希望未解释的参数得到valueNone(而不是根本不存在)。 我目前的解决方案是使用3个@app.route语句,我想知道我是否错过了更有效的方法 @app.route('/URL',defaults={'Arg1':None,'Arg2':None}) @app.route('/URL/<string:Arg1>',defaults={'Arg2

我有一个烧瓶URL,其中有两个独立的参数。我想运行同一个函数,要么不带参数,要么只带第一个参数,要么两个参数都带。如果没有设置特定的值,我希望未解释的参数得到value
None
(而不是根本不存在)。 我目前的解决方案是使用3个
@app.route
语句,我想知道我是否错过了更有效的方法

@app.route('/URL',defaults={'Arg1':None,'Arg2':None})
@app.route('/URL/<string:Arg1>',defaults={'Arg2':None})
@app.route('/URL/<string:Arg1>/<string:Arg2>')
@app.route('/URL',默认值={Arg1':无,'Arg2':无})
@app.route('/URL/',默认值={'Arg2':None})
@app.route(“/URL/”)

谢谢

在这种情况下,只需创建简单的路由并在
request.args中访问这些变量,如下所示:

@app.route('/test',methods=['GET'])
def test():
arg1=request.args.get('arg1',无)
arg2=request.args.get('arg2',无)
如果arg1:
通过它做点什么
elif arg2:
通过它做点什么
其他:
通过#在没有给出参数的情况下做点什么
返回jsonify()
然后在url中,您可以这样传递:

/test
or
/test?arg2=321
or
/test?arg1=123
or
/test?arg1=123&arg2=321

我只对一个路由执行相同的操作,并在我的处理程序方法中使用
request.args.get('argname')
,但那只是因为我不知道您所做的甚至可能是正确的!我确信我错过了一些简单的事情