Flaskでデバッグする方法を解説【デバッグツールバーを活用しよう】
2024年7月22日

こんにちは!
今回の記事では、Flaskでデバッグをする方法について解説します。
デバッグとは、ソフトウェアのソースコードのエラーやバグを見つけて修正するプロセスのことです。Flaskが予期した動作をしない場合にデバッグが必要になります。
デバッグの方法を知ることで、不具合の対処の時間が早くなり、開発の効率が上がります。
Flaskでデバッグする方法を解説
Flaskでデバックする方法は、以下の3つがあります。
- デバッグモードを有効にする
- デバッグツールバーを活用する
- ログを出力する
それぞれについて解説します!
デバッグモードを有効にする
Flaskにはデバッグモードがあり、エラーメッセージを詳細に表示し、コードの変更を自動的に検知して再起動する便利な機能があります。
これを有効にするには、app.pyで以下のように設定します。
from flask import Flask
app = Flask(__name__)
if __name__ == "__main__":
app.run(debug=True)
その後、app.pyファイルを実行して、Flaskを起動させます。
python app.py
app.pyファイルを直接実行すると、__name__は__main__となります。つまり、app.run(debug=True)が実行され、デバッグモードが有効になります。
デバッグモードが有効になっていると、Webページを表示した際、以下のようなエラーメッセージが表示されます。

デバッグツールバーを活用する
Flask-DebugToolbarは、Flaskアプリケーションのデバッグを助けるツールです。
これを使うことで、リクエストやレスポンス、SQLAlchemyのクエリなどの詳細情報を簡単に確認できます。
インストールするには、以下のコマンドを実行します。
pip install flask-debugtoolbar
有効にするには、以下のようにapp.pyを編集します。
from flask import Flask
from flask_debugtoolbar import DebugToolbarExtension
app = Flask(__name__)
app.debug = True
app.config['SECRET_KEY'] = 'your_secret_key'
toolbar = DebugToolbarExtension(app)
if __name__ == "__main__":
app.run()
デバッグバーは、デバッグモードが有効の場合のみ起動します。また、SECRET_KEYが必要なので、適当な文字列を指定します。
参考サイト
ログを出力する
Pythonの標準ライブラリであるloggingモジュールを使用して、Flaskアプリケーションでログを出力させます。
以下の例では、app.logger.debugとapp.logger.infoを使用して、変数nameとageの値をログに出力しています。
import logging
from flask import Flask
app = Flask(__name__)
# ログの基本設定
logging.basicConfig(level=logging.DEBUG)
@app.route('/')
def index():
name = "Alice"
age = 30
# 変数の中身をログに出力
app.logger.debug('Name: %s', name)
app.logger.info('Age: %d', age)
return "Check the logs for variable values."
if __name__ == "__main__":
app.run(debug=True)
このようにログをコードの間に設定することで、現在の変数の値などを出力することが可能です。
まとめ
今回の記事では、Flaskでデバッグする方法について解説しました。
基本的なデバッグモードの設定から、Flask-DebugToolbarの設定方法、loggingの活用方法を解説しました。
これらのツールや手法を駆使して、効率的にデバッグを行い、より安定したアプリケーションを開発してください。
今回の記事がWeb開発のお役になれば幸いです。
ここまでお読みいただきありがとうございました。
Pythonの基礎から応用まで学べる
Python WebAcademy
Python WebAcademyでは、Pythonの基礎からアーキテクチャなどの応用的な内容まで幅広く学べます。また、ブラウザ上で直接Pythonコードを試すことができ、実践的なスキルを身につけることが可能です。

インフラの学習はInfraAcademy

おすすめの記事









