APIプロジェクトでFlask0.9を使用していますが、@ routerデコレータにバグがあるようです。または、ここで非常に間違ったことをしています。
/ twitter/authorizeと/facebook/ authorizeの2つのURLがあり、@routeを使用しています。問題は、/ twitter / authorizeをリクエストすると、実際には/ facebook/authorize関数がそれに応答することです。
/ facebook / authorize関数とルーティングの行にコメントすると、/ twitter / authorizeがリクエストに応答します(そうあるべきです)。
/ facebook / authorize内にrequest.pathを印刷しようとしましたが、返されました
/ twitter / authorize
しかし、それは/ facebook / authorize内にあるので(そしてそれは要求されたURLです)、どうすればよいでしょうか?
両方の関数のコード:
@app.route('/facebook/authorize')
def facebook_autorize():
callback = request.args.get('callback', None)
if not callback:
return error_as_json("must send callback")
scope = request.args.get('scope', 'email')
api = instantiate_facebook()
response = api.authorize(callback = callback)
response = jsonify(info = response)
response.status_code = 200
return response
@app.route('/twitter/authorize')
def twitter_autorize():
callback = request.args.get('callback', None)
api = instantiate_api()
response = api.authorize(callback = callback)
response = jsonify(info = response)
response.status_code = 200
return response
instanceiate_api()とinstantiate_facebook()を呼び出すと、FacebookとTwitterを実行するクライアントの有効なインスタンスが返されます。
もちろん、両方の関数の名前は異なります。何が起こっているのか本当にわかりません。これはバグですか?誰かがこれを以前に経験したことがありますか?バグの場合、誰かが回避策を提案できますか?