Overview
このチュートリアルでは、Django プロジェクトで Django MongoDB Extensions の Django Debug Toolbar を使用する方法を学ぶことができます。
Django MongoDB Extensions は、Django MongoDB バックエンドの追加開発者ツールを含むパッケージです。このチュートリアルでは、Django Debug Toolbar で使用するために Django MongoDB Extensions で MongoDB クエリ言語 (MQL) パネルを構成する方法を説明します。このパネルには、リクエスト中にアプリケーションが実行する MQL クエリが実行時間とクエリプランとともに表示されます。
前提条件
このチュートリアルを開始する前に、次の前提条件タスクを完了してください。
Dlango MongoDBバックエンドを使用する Dlangoプロジェクトを作成します。プロジェクトを作成するには、「Django MongoDBバックエンドを使い始める」チュートリアルを参照してください。
プロジェクトに Diango Debug Tools をインストールして構成します。手順を表示するには、Diango Debug Tools バーのドキュメントの「 インストール 」を参照してください。
Tutorial
次の手順では、DくださいMongoDB拡張機能をインストールし、 MQLパネルを構成し、Diango デバッグ ツールバーでMongoDBクエリを表示する方法を示します。
MQLパネルを登録します。
デフォルトでは 、Diango デバッグ ツールバーは DEBUG_TOOLBAR_PANELS 設定なしで動作します。ただし、 MongoDB はSQLを使用しないため、 MongoDBアプリケーションの最も一般的な構成は、 SQLパネルをMQLパネルに置き換えることです。次の設定を settings.pyファイルに追加します。これにより、DEBUG_TOOLBAR_PANELS はデフォルト値に設定されますが、SQLPanel は MQLPanel に置き換えられます。
DEBUG_TOOLBAR_PANELS = [ 'debug_toolbar.panels.history.HistoryPanel', 'debug_toolbar.panels.versions.VersionsPanel', 'debug_toolbar.panels.timer.TimerPanel', 'debug_toolbar.panels.settings.SettingsPanel', 'debug_toolbar.panels.headers.HeadersPanel', 'debug_toolbar.panels.request.RequestPanel', 'django_mongodb_extensions.mql_panel.MQLPanel', 'debug_toolbar.panels.staticfiles.StaticFilesPanel', 'debug_toolbar.panels.templates.TemplatesPanel', 'debug_toolbar.panels.alerts.AlertsPanel', 'debug_toolbar.panels.cache.CachePanel', 'debug_toolbar.panels.signals.SignalsPanel', 'debug_toolbar.panels.community.CommunityPanel', 'debug_toolbar.panels.redirects.RedirectsPanel', 'debug_toolbar.panels.profiling.ProfilingPanel', ]
sample_mflix.movies クエリ情報を表示します。
If you configure Django MongoDB Extensions for the application created in the 「 MongoDBバックエンドを使い始める 」チュートリアルで作成されたアプリケーションに Dlango MongoDB拡張機能 を構成すると、http://127.0.0.1:8000/recent_movies/ に移動して、リクエスト中に実行されたMongoDBクエリを表示できます。
Dpango デバッグ ツールバーはページの右側に表示されます。最近の映画を表示するために使用されるMongoDBクエリを表示するには、MQL ラベルを選択します。これは次のコードのようになります。
db.movies.aggregate([{'$addFields': {'released': '$released'}}, {'$sort': SON([('released', -1)])}, {'$limit': 5}])
次に、次のボタンをクリックして、クエリ情報を検索できます。
次のコードのようなトレースバックを表示するには、クエリの左側にある [+] ボタンを選択します。
/path/to/site-packages/django/contrib/staticfiles/handlers.py in __call__(80) return self.application(environ, start_response) /path/to/djangoquickstart/sample_mflix/views.py in recent_movies(11) return render(request, "recent_movies.html", {"movies": movies}) /path/to/site-packages/django/shortcuts.py in render(25) content = loader.render_to_string(template_name, context, request, using=using) ... pretty-printed MQLを表示するには、ACTION 列のクエリの右側にある Query ボタンを選択します。このMQL は次のコードに似ています。
db.movies.aggregate( [ { "$addFields": { "released": "$released" } }, { "$sort": { "released": -1 } }, { "$limit": 5 } ] ) クエリの実行プランを表示するには、クエリの右側にある Explain ボタンを ACTION 列で選択します。このプランは、次のコードのようになります。
{ "explainVersion": "1", "stages": [ { "$cursor": { "queryPlanner": { ... }, "executionStats": { ... } }, "nReturned": 21351, "executionTimeMillisEstimate": 59 }, { "$addFields": { "released": "$released" }, "nReturned": 21351, "executionTimeMillisEstimate": 70 }, { "$sort": { "sortKey": { "released": -1 }, "limit": 5 }, ... } ], ... }
次のステップ
Django Debug Toolbar のチュートリアルが完了しました。これで、Django MongoDB Extensions を使用して Django Debug Toolbar で MongoDB クエリを表示および分析する Django アプリケーションができました。
Dlango MongoDB拡張機能パッケージの詳細については、 PyPI の diango-mongodb-extentions および GitHub の diango-mongodb-extentionsリポジトリ を参照してください。
データをクエリする方法については、クエリの指定ガイドを参照してください。