ホームページ >バックエンド開発 >Python チュートリアル >フラスコの KeyboardInterrupt() エラーの問題を解決する
KeyboardInterrupt は python の一般的な例外であり、ユーザーが Ctrl C キーの組み合わせを押したときにトリガーされます。ターミナル 。 flask アプリケーションでは、アプリケーションの実行中に Ctrl C を押すと、アプリケーションは KeyboardInterrupt 例外をスローして実行を終了します。
この場合、これはエラーではなく、実行は正常に終了します。この状況でクリーンアップを実行したい場合は、アプリケーションで KeyboardInterrupt 例外をキャッチし、そこでクリーンアップを実行できます。
flask の developmentserver を実行するときに KeyboardInterrupt が発生した場合は、ターミナルで kill を使用して終了することを検討できます
kill -INT
つまり、この KeyboardInterrupt() はユーザーがプログラムを終了したときに生成される例外であり、それほど注意する必要はありません。
プログラムの終了時にクリーンアップ操作を実行したい場合は、コード内で KeyboardInterrupt 例外をキャッチし、そこでクリーンアップ操作を実行できます。以下に例を示します:
try: app.run() except KeyboardInterrupt: # 执行清理操作 pass
このメソッドは、ファイル ハンドルを閉じる、 データベース 接続を切断するなど、プログラムの終了時にいくつかのクリーニング操作を実行できます。
バックグラウンドでプログラムを実行している場合、プロセスを終了するための追加の方法が必要になる場合があります。 ps -ef|grep
つまり、プログラムの終了時にクリーンアップ操作を実行したい場合は、コード内で KeyboardInterrupt 例外をキャプチャしてクリーンアップ操作を実行するか、kill コマンドを使用してプログラムを終了することができます。
はい、プログラム終了時に データベース 接続を閉じる例を次に示します:
from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db' db = SQLAlchemy(app) @app.route('/') def hello(): return 'Hello, World!' try: app.run() except KeyboardInterrupt: # 关闭数据库连接 db.session.close()
これは flask_sqlalchemy と組み合わせた例です。ユーザーがプログラムを終了すると、プログラムは db.session.close() を実行してデータベース接続を閉じます。
これは単なる例です。実際のアプリケーションでは、ファイル ハンドルを閉じる、他の接続を切断するなど、さらにクリーンアップ操作を実行する必要がある場合があります。
つまり、try nothing を使用して KeyboardInterrupt 例外をキャッチし、プログラム終了時に接続を閉じるなどのクリーンアップ操作を実行します。
以上がフラスコの KeyboardInterrupt() エラーの問題を解決するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。