58

フラスコと SQL Alchemy を使用してアプリを開発しています。各クエリのデバッグにかかった時間と一緒に、ページを生成するために実行されたクエリを表示する必要があります

それを行う最良の方法は何ですか?

4

8 に答える 8

121

Flask-SQLAlchemy 拡張機能を使用していて、面倒なことをしたくないcreate_engine場合は、構成キーを設定できますSQLALCHEMY_ECHO=True

http://flask-sqlalchemy.pocoo.org/2.1/config/

于 2014-08-01T20:25:09.243 に答える
18

私自身は使用していませんが、Flask Debug-toolbar がこれに役立つようです。

https://github.com/mgood/flask-debugtoolbar

これは、クエリのプロファイリングに使用できる django-debug-toolbar のポートです。Flask Debug-toolbar のドキュメントには記載されていませんが、SQLAlchemyDebugPanel のコードがあります。
そのため、プロジェクトを見て、必要なことが行われるかどうかを確認する価値があると思います。

于 2012-09-11T12:26:04.603 に答える
9

返信が遅くなりますが、sqlalchemy create_engine で "echo=True" を設定すると、実行されたクエリと時間が記録されます。

于 2014-02-27T06:34:58.583 に答える
3

もう1つの答えは、およびでflask_sqlalchemyはなく、でのみ機能します。flasksqlalchemy

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) は機能します。私の錬金術がどのような種類のクエリを形成しているのかを理解しようとしていたところ、それがわかりました。

于 2014-01-07T22:11:43.623 に答える