フラスコと SQL Alchemy を使用してアプリを開発しています。各クエリのデバッグにかかった時間と一緒に、ページを生成するために実行されたクエリを表示する必要があります
それを行う最良の方法は何ですか?
フラスコと SQL Alchemy を使用してアプリを開発しています。各クエリのデバッグにかかった時間と一緒に、ページを生成するために実行されたクエリを表示する必要があります
それを行う最良の方法は何ですか?
Flask-SQLAlchemy 拡張機能を使用していて、面倒なことをしたくないcreate_engine
場合は、構成キーを設定できますSQLALCHEMY_ECHO=True
。
私自身は使用していませんが、Flask Debug-toolbar がこれに役立つようです。
https://github.com/mgood/flask-debugtoolbar
これは、クエリのプロファイリングに使用できる django-debug-toolbar のポートです。Flask Debug-toolbar のドキュメントには記載されていませんが、SQLAlchemyDebugPanel のコードがあります。
そのため、プロジェクトを見て、必要なことが行われるかどうかを確認する価値があると思います。
返信が遅くなりますが、sqlalchemy create_engine で "echo=True" を設定すると、実行されたクエリと時間が記録されます。
もう1つの答えは、およびでflask_sqlalchemy
はなく、でのみ機能します。flask
sqlalchemy
native を使用する場合はSQLAlchemy
、簡単な修正としてこれを行うことができます: http://yuji.wordpress.com/2014/01/07/use-native-sqlalchemy-in-flask-debugtoolbar/
from flask.ext.sqlalchemy import _EngineDebuggingSignalEvents
_EngineDebuggingSignalEvents(engine, app.import_name).register()
# use at your own risk! a development environment shouldn't really care though!
Explain/Select エンドポイントは、手動でプロジェクトに接続しないと機能しませんが、少なくともクエリ デバッガー (count および sql) は機能します。私の錬金術がどのような種類のクエリを形成しているのかを理解しようとしていたところ、それがわかりました。