6

Flask の Web サイトにあるデフォルトの「Hello world」スクリプトを見ると、次のようになります。

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

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

私はプログラミングに非常に慣れていないので、このスクリプトがどのように機能するのか理解できません。hello()関数はどこにも呼び出されないため、Flask は最初に見つかった関数の出力を表示するだけですか? ページに 2 つまたは 3 つの関数からの出力を表示したい場合はどうすればよいでしょうか?

4

2 に答える 2

10

この行:@app.route("/")関数を '/' ルートのハンドラーとして登録します。ブラウザーが「/」(ルート) を照会すると、アプリケーションは「Hello World!」と応答します。

@構文はデコレータと呼ばれます。

関数デコレータのチェーンを作成するには?

于 2012-10-03T19:58:23.177 に答える
1

たとえば、次のコードを見てください。

def decorator(func):
    print "this function is called for " + func 
    def wrapper(*args, **kwargs):
            return func(*args, **kwargs)
    return wrapper

@decorator
def hello():
    return "Hello"

ファイルに保存して試してみると、hello を定義すると、次のように表示されることがわかります。

この関数は < function hello at 0x241c70> に対して呼び出されます

于 2012-10-27T17:19:16.027 に答える