bugfix> python > 投稿

私はAPIとpythonの初心者です。実際、Rで配管工をサポートしている無料のホストを見つけることに失望した後、Pythonで試してみることにしました。単純な問題は、2つの数値引数を取り、特定のCSVファイルを使用していくつかの計算を行い、数値を返す単純な関数があることです(localhostの配管工によってRでこれを行っただけです)。 pythonでのテストのために、以下のコードを記述しました。

from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
    return "hello world!"
if __name__ == '__main__':
    app.run(debug=True)

まあ、これは正しく動作します。しかし、次のような引数を取る関数を作成しようとすると:

from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello(a):
    return a + 2
if __name__ == '__main__':
    app.run(debug=True)

引数を渡していないというページが表示されます。

私の主な質問は、どのように引数を渡すことができるかということです。 (R plumberによって作成されたAPIでは、たとえば、次のように呼び出します: localhost/5000/?a=2

私の別の質問は、Herokuのようなものでこの種のAPIホストとリクエストができるかどうかです。

回答 3 件
  • Flaskドキュメントから:

    You can add variable sections to a URL by marking sections with <variable_name> 。次に、関数は <variable_name> を受け取ります  キーワード引数として。オプションで、コンバーターを使用して <converter:variable_name> などの引数のタイプを指定できます 。

    あなたの場合、それは次のようになります:

    @app.route("/<int:a>")
    def hello(a):
        return a + 2
    
    

    他のオプションは、要求データを使用することです。

  • デコレータ@ app.routeにパラメータ「a」を含める必要があります。

    @app.route('/<int:a>')
    def hello(a):
       return a + 2
    
    

  • また、そのように使用し、名前をパラメーターとして渡すこともできます!

    @app.route('/helloworld/<Name>')
    def helloworld(Name):
        print Name
    
    

    別の実装はそのようになります、python-flaskドキュメントをご覧ください!

    @app.route("/<int:a>")
    def hello(a):
        return a + 2
    
    

あなたの答え