【问题标题】:Formatting callback parameters in Flask's dynamic routing [duplicate]在 Flask 的动态路由中格式化回调参数 [重复]
【发布时间】:2020-07-27 20:55:38
【问题描述】:

Spotify 的 API 返回用户验证后生成的授权码,格式如下:

?code=1234567

为了在我的 Flask 应用中捕获代码,我创建了一个动态 URL:

@app.route("/<auth_code>")
def callback_code(auth_code):
    return auth_code

不幸的是,在收到正确的回调后,浏览器地址栏中的 URL 是这样的: http://127.0.0.1:5000/?code=1234567

很遗憾,没有生成以 ?code=1234567 结尾的动态 URL,Flask 服务器生成 404 错误。

这是由于回调 URI 中存在参数(以“?”开头)。这使得 callback_code 函数无法返回 URI 的 ?code=1234567 函数。

如何捕获回调代码字符串或回调的参数,以便在我的 Flask 应用程序的其他部分使用授权代码?

【问题讨论】:

    标签: python api flask spotify


    【解决方案1】:

    该代码是查询字符串的一部分。你想要的是:

    @app.route("/")
    def callback_code():
        return request.args.get('code')
    

    请注意,您将其发送到根 url,这可能不是您想要的。但是,如果您不介意测试 code 参数的每个调用,也可以

    @app.route("/")
    def index():
        if request.args.get('code'):
            # test for match and authorize
        else:
            # it's just a normal call to your domain's root url
        
    

    【讨论】:

    • 太棒了,这正是我想要的!非常感谢!
    猜你喜欢
    • 2020-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-09
    • 2016-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多