2017-01-19 8 views
1

現在、私たちは別のサービスに呼び出しをプロキシします。そのためにrequest.methodGETであることを確認し、request.get(url)を使用し、request.methodPOSTである場合、request.post(url)を使用します。そのような使い方を処理するためのよりクリーンな実装がありますか?フラスコで 'GET'、 'POST'、 'DELETE'をプロキシする一般的方法

@app.route('/<path:url>', methods=('GET', 'POST')) 
def foo(url): 
    if check_token(): 
     req_url = "http://localhost:8081/{}?{}".format(url, request.query_string.decode('utf-8')) 
     if request.method == 'GET': 
      req = requests.get(req_url, stream=True) 
     elif request.method == 'POST': 
      req = requests.post(req_url, stream=True) 
+3

'REQ = GETATTR(リクエスト、request.method.lower())(req_url、ストリーム=真)' –

答えて

0

2つの呼び出しを2つの別々の方法で実装できます。各メソッドは、許可されたメソッドの型のみを持つ必要があります。

from flask import Flask 
app = Flask(__name__) 



@app.route('/', methods=(['GET'])) 
def foo(): 
    return "get" 


@app.route('/', methods=(['POST'])) 
def bar(): 
    return "post" 
関連する問題