Flask運転およびデバッグモード
1931 ワード
最小の応用
最小のアプリケーションは次のように見えます.
それをhelloに保存します.py(または類似のファイル)をPython解釈器で実行します.あなたのアプリケーションがflaskではないことを確認します.py、これはFlask自体と衝突するからです.
ブラウザを使用してブラウズ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()の呼び出しは、次のようになります.
これにより、オペレーティングシステムは公開されたIPをすべて監視することができます.
デバッグモード
run()メソッドは、ローカル開発サーバを起動するのに適していますが、コードを変更した後、手動でサーバを再起動する必要があります.このようにするのはよくありません.Flaskはもっとよくできます.デバッグサポートが有効になっている場合、コードの変更時にサーバが自動的にロードされ、エラーが発生した場合に役立つデバッガが提供されます.
コールモードをオンにするには2つの方法があります.1つは、適用オブジェクトにフラグビットを設定することです.
またはrunのパラメータとして入力します.
2つの方法の効果は同じです.
Attention:
インタラクティブデバッガは、フォーク環境では動作しません(これにより、本番サーバではほとんど使用できません)、任意のコードを実行できます.これにより、大きなセキュリティリスクになります.そのため、生産環境では絶対に使用できません.
最小のアプリケーションは次のように見えます.
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:
インタラクティブデバッガは、フォーク環境では動作しません(これにより、本番サーバではほとんど使用できません)、任意のコードを実行できます.これにより、大きなセキュリティリスクになります.そのため、生産環境では絶対に使用できません.