web-dev-qa-db-ja.com

フラスコ内の取得要求のパラメーターの値を取得する方法は?

私がウェブで見つけた答えは、request.args.get。ただし、動作するように管理することはできません。私は次の簡単な例を持っています:

from flask import Flask
app = Flask(__name__)

@app.route("/hello")
def hello():
    print request.args['x']
    return "Hello World!"

if __== "__main__":
    app.run()

127.0.0.1:5000/hello?x=2私のブラウザで、結果として私は得る:

Internal Server Error

The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.

何が間違っていますか?

44
Roman

簡単な答えは、flaskパッケージからrequestグローバルオブジェクトをインポートしていないことです。

from flask import Flask, request

これは、開発サーバーをデバッグモードで実行することで簡単に判断できます。

app.run(debug=True)

これにより、以下を含むスタックトレースが得られます。

print request.args['x']
NameError: global name 'request' is not defined
76
sberry

http:// localhost:5000/api/iterators/opel/next?n = 5

前のようなもののために

from flask import Flask, request
n = request.args.get("n")

トリックを行うことができます

8
Joe9008