python - 允许在 Flask URL 中使用多个可选参数
问题描述
所以我有一个烧瓶 URL,其中有 2 个单独的参数。我想运行相同的函数,没有参数,只有第一个或两者都有。如果没有设置特定值,我希望下落不明的参数能够获得价值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>')
谢谢!
解决方案
在这种情况下,只需创建简单的路由并request.args
像这样访问这些变量:
@app.route('/test', methods=['GET'])
def test():
arg1 = request.args.get('arg1', None)
arg2 = request.args.get('arg2', None)
if arg1:
pass # Do something with it
elif arg2:
pass # Do something with it
else:
pass # do something when no args given
return jsonify()
然后在 url 中你可以这样传递:
/test
or
/test?arg2=321
or
/test?arg1=123
or
/test?arg1=123&arg2=321
推荐阅读
- php - 如何使用 mysqli 更新我的密码?
- python - WooCommerce REST API 产品变体 404
- docker - 如何禁用所有 docker 容器 JSON 日志?
- msbuild - Azure DevOps - 将 MSBuild 属性作为参数传递给其他构建任务
- javascript - 通过 JS 获取倒数第二个 HTML 元素
- r - 根据因子条件在 R 中插入行
- sqlite - 如何在 initstate 中访问未来值?
- python - python pandas - 获取两个数据帧之间的匹配和不匹配记录
- python - Tensorflow 序列到 LSTM 序列
- python - 如果是的话,将关系数据库表存储为弹性搜索中的不同索引是否很好,那么如何在索引中传递关系