") ... 我尝试访问路线/brawlstats/rankings/globa-6ren">
gpt4 book ai didi

python - Sanic - 端点的路径类型不包括查询参数

转载 作者:太空宇宙 更新时间:2023-11-03 20:03:38 26 4
gpt4 key购买 nike

如果我将路线定义为(仅代码的相关部分):

...
@app.get("brawlstats/endpoint:path>")
...

我尝试访问路线/brawlstats/rankings/global/brawlers/16000001?limit=200,它在问号处中断。我希望端点包含整个 url。如何使其包含整个路径?

最佳答案

? 之后的所有内容均被视为 query string 的一部分。您的端点代表/brawlstats之后的路径

由于 endpointlimit 参数是分开的,因此您可以通过以下示例检索两者:

from sanic import Sanic
from sanic.response import text

app = Sanic()


@app.get('/brawlstats/<endpoint:path>')
async def brawlstats(request, endpoint):

# endpoint is set to part after '/brawlstats'.
# limit query arg is converted to integer or 0 if it's not set.
limit = int(request.args.get('limit', 0))

if endpoint == 'rankings/global/brawlers/16000001' and limit > 0:
return text('Success', 200)

return text('Bad request', 400)

if __name__ == "__main__":
app.run(host="127.0.0.1", port=8000)

关于python - Sanic - 端点的路径类型不包括查询参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59090872/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com