Python Sanic—端点的路径类型不为';不包括查询参数

Python Sanic—端点的路径类型不为';不包括查询参数,python,routing,sanic,Python,Routing,Sanic,如果我已将我的路线定义为(仅代码的相关部分): 我试图访问route/brawlstats/rankings/global/brawlers/16000001?limit=200,它在问号处被切断。我希望端点包含整个url。如何使其包含整个路径?将之后的所有内容都视为路径的一部分。您的端点表示/brawlstats之后的路径 由于endpoint和limit参数是分开的,因此您可以使用此示例检索这两个参数: from sanic import Sanic from sanic.response

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


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

之后的所有内容都视为路径的一部分。您的
端点
表示
/brawlstats
之后的路径

由于
endpoint
limit
参数是分开的,因此您可以使用此示例检索这两个参数:

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)
从sanic导入sanic
从sanic.response导入文本
app=Sanic()
@app.get(“/brawlstats/”)
异步def brawlstats(请求、端点):
#端点设置为“/brawlstats”之后的部分。
#限制查询参数转换为整数或0(如果未设置)。
limit=int(request.args.get('limit',0))
如果端点==“排名/全球/斗殴者/16000001”且限制>0:
返回文本('Success',200)
返回文本('错误请求',400)
如果名称=“\uuuuu main\uuuuuuuu”:
应用程序运行(主机=“127.0.0.1”,端口=8000)

之后的所有内容都被视为一部分。您的
端点
表示
/brawlstats
之后的路径

由于
endpoint
limit
参数是分开的,因此您可以使用此示例检索这两个参数:

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)
从sanic导入sanic
从sanic.response导入文本
app=Sanic()
@app.get(“/brawlstats/”)
异步def brawlstats(请求、端点):
#端点设置为“/brawlstats”之后的部分。
#限制查询参数转换为整数或0(如果未设置)。
limit=int(request.args.get('limit',0))
如果端点==“排名/全球/斗殴者/16000001”且限制>0:
返回文本('Success',200)
返回文本('错误请求',400)
如果名称=“\uuuuu main\uuuuuuuu”:
应用程序运行(主机=“127.0.0.1”,端口=8000)

谢谢,这很有效!当我问这个问题时,我意识到我是多么的愚蠢……这并不愚蠢。这是一个新的框架,如果你是初学者,很可能你错过了一些东西。如果它对你有帮助,请考虑接受我的回答。谢谢你,汉克斯,成功了!当我问这个问题时,我意识到我是多么的愚蠢……这并不愚蠢。这是一个新的框架,如果你是初学者,很可能你错过了一些东西。如果它对你有帮助,请考虑接受我的回答。非常感谢。