Django の SQL クエリについての深い理解
Django は、優れた Web 開発フレームワークとして、SQL クエリを使用してリレーショナル データベースと対話します。 Django のデータベース インタラクションをより深く理解するために、ユーザーはクエリ操作中に実行された生の SQL クエリを表示したい場合があります。
Django メソッドを使用してクエリの詳細を明らかにします
Django は、生成した生の SQL クエリを表示するいくつかの方法を提供します。 1 つの方法は、実行された SQL クエリのリストをコンパイルする django.db.connection.queries
を使用することです。このプロパティを利用すると、ユーザーはクエリを印刷してその構造と詳細を理解できます。
<code class="language-python">from django.db import connection print(connection.queries)</code>
あるいは、queryset には、実行されるクエリを含む query
属性があります。このプロパティにより、開発者は基礎となる SQL ステートメントにアクセスし、Django がデータベースに送信したい特定のコマンドを明らかにすることができます。
<code class="language-python">print(MyModel.objects.filter(name="my name").query)</code>
注: 未処理のクエリのデコード
Django のクエリ メソッドから取得する出力は純粋な SQL ではないことに注意することが重要です。 Django は別のアプローチを使用し、クエリとパラメーターをデータベース アダプターに個別に送信し、データベース アダプターが適切な操作を実行します。したがって、クエリ出力をデータベースに直接送信しようとすると、予期しない動作が発生する可能性があります。
パフォーマンス分析用のクエリをリセット
特定の期間中に実行されたクエリの数を追跡しやすくするために、Django は django.db
に reset_queries
関数を提供します。この機能を使用すると、ユーザーはクエリ数をリセットでき、特定の時間間隔内に実行されたクエリを分離して測定できるようになります。
<code class="language-python">from django.db import reset_queries from django.db import connection reset_queries() # 在此处运行您的查询 print(connection.queries) >>> []</code>
以上がDjango アプリケーションによって実行された SQL クエリを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。