ホームページ >データベース >mysql チュートリアル >Flask テストの「RuntimeError: Working Outside of Application Context」を修正するにはどうすればよいですか?

Flask テストの「RuntimeError: Working Outside of Application Context」を修正するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-13 15:34:02804ブラウズ

How Do I Fix

RuntimeError: Operating Outside Application Context

Flask では、各リクエストはさまざまな操作のコンテキストとして機能するアプリケーション コンテキストを生成します。 Flask アプリケーションをテストする場合、「RuntimeError: アプリケーション コンテキスト外で動作しています」エラーが発生するのが一般的です。これは、この定義されたコンテキストの外で操作が試行されたときに発生します。

この問題に対処するには、単体テスト内でリクエスト コンテキストを明示的に作成する必要があります。 app.app_context() をテストに組み込むことで、データベース接続やテンプレートのレンダリングなどの操作を実行するために必要なコンテキストを確立します。

def test_connection1(self):
with app.app_context():
object = TestMySQL()
object.before_request()

アプリ コンテキスト内でテスト コードをラップすることで、操作が確実に実行されます。正しいコンテキスト内で実行され、ランタイム エラーが回避されます。さらに、app.test_client() を利用して、アプリケーション コンテキストを埋め込み、実際の HTTP リクエストを必要とせずに一般的なリクエストの効果をエミュレートするテスト クライアントを作成できます。

client = app.test_client()
response = client.get('/')
assert response.status_code == 200

要約すると、 「RuntimeError: アプリケーション コンテキスト外で動作しています」エラーを解決して Flask アプリケーションを正常にテストするには、app.app_context() または app.test_client() を使用して、リクエスト固有の操作に必要なコンテキストを確立します。

以上がFlask テストの「RuntimeError: Working Outside of Application Context」を修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。