Flask運転およびデバッグモード

1931 ワード

最小の応用
最小のアプリケーションは次のように見えます.
from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'

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

それをhelloに保存します.py(または類似のファイル)をPython解釈器で実行します.あなたのアプリケーションがflaskではないことを確認します.py、これはFlask自体と衝突するからです.
$ python3 hello.py
 * Running on http://127.0.0.1:5000/

ブラウザを使用してブラウズhttp://127.0.0.1:5000/ああ、ハローワールドの挨拶が見えます.
まずクラスFlaskを導入した.このクラスのインスタンス化は私たちのWSDIアプリケーションになります.最初のパラメータは、アプリケーションモジュールの名前です.この例のように単一のモジュールを使用している場合は、最初のパラメータにはnameを使用します.起動またはモジュールとしてインポートを個別に適用すると、名前が異なるためです(mainは実際のインポートの名前に対応します).詳細については、Flaskのドキュメントを参照してください.次に、クラスのインスタンスを作成します.モジュールまたはパッケージの名前を渡します.これによりFlaskはテンプレートや静的ファイルなどをどこで探すかを知ることができます.私たちは装飾器route()を使ってFlaskのどのURLが私たちの関数をトリガーできるかを教えます.特定の関数に対してURLsを生成し、ユーザーブラウザに表示したい情報を返す関数を定義します.最後に、関数run()を使用してローカルサーバを起動し、アプリケーションを実行します.if name='main':モジュールとしてインポートするのではなく、スクリプトがPython解釈器によって直接実行される場合にのみサーバが実行されることを確認します.Ctrl+cを押してサーバーを停止してください.
外部可視サーバ
サーバを実行すると、自分のコンピュータからしかアクセスできず、ネットワーク内の他のどこにもアクセスできないことに気づきます.これは、デフォルトでは、デバッグモードでは、アプリケーションの1人のユーザーだけがコンピュータ上の任意のPythonコードを実行することができます.
Debugを閉じたり、ネットワーク上のユーザーを信頼したりすると、スクリプトhelloを簡単に変更すれば、サーバを外部に使用できます.pyにおけるメソッドrun()の呼び出しは、次のようになります.
app.run(host='0.0.0.0')

これにより、オペレーティングシステムは公開されたIPをすべて監視することができます.
デバッグモード
run()メソッドは、ローカル開発サーバを起動するのに適していますが、コードを変更した後、手動でサーバを再起動する必要があります.このようにするのはよくありません.Flaskはもっとよくできます.デバッグサポートが有効になっている場合、コードの変更時にサーバが自動的にロードされ、エラーが発生した場合に役立つデバッガが提供されます.
コールモードをオンにするには2つの方法があります.1つは、適用オブジェクトにフラグビットを設定することです.
app.debug = True
app.run()

またはrunのパラメータとして入力します.
app.run(debug=True)

2つの方法の効果は同じです.
Attention:
インタラクティブデバッガは、フォーク環境では動作しません(これにより、本番サーバではほとんど使用できません)、任意のコードを実行できます.これにより、大きなセキュリティリスクになります.そのため、生産環境では絶対に使用できません.