ホームページ >データベース >mysql チュートリアル >Django ビューで生の SQL クエリを実行するにはどうすればよいですか?

Django ビューで生の SQL クエリを実行するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-22 17:26:10257ブラウズ

How Can I Execute Raw SQL Queries in Django Views?

Django ビューでの生の SQL クエリの実行

Django を使用すると、開発者はビューから生の SQL クエリを直接実行できます。これは、複雑な操作を実行したり、Django の ORM から簡単にアクセスできないデータを取得したりする場合に役立ちます。

生の SQL クエリの実行

Django で生の SQL クエリを実行するには、次の手順:

  1. から接続オブジェクトをインポートします。 django.db.
  2. cursor = connection.cursor() を使用してカーソル オブジェクトを作成します。
  3. cursor.execute(query) を使用して SQL クエリを実行します。
  4. 結果をフェッチします行 = を使用するcursor.fetchone().

次の例は、Django の ORM と生の SQL クエリを使用して指定された SQL クエリを実行する方法を示しています。

from app.models import Picture
from django.db import connection

def results(request):
    # Using Django ORM
    all = Picture.objects.all()
    yes = Picture.objects.filter(vote='yes').count()
    
    # Using raw SQL
    cursor = connection.cursor()
    cursor.execute('''SELECT COUNT(*) FROM pictures''')
    row = cursor.fetchone()
    num_all = row[0]
    
    cursor.execute('''SELECT COUNT(*) FROM pictures WHERE vote = "yes"''')
    row = cursor.fetchone()
    num_yes = row[0]
    
    return render_to_response(
        'results.html', 
        {'picture':picture, 'num_all':num_all, 'num_yes':num_yes}, 
        context_instance=RequestContext(request)
    )

フィルタリング用の WHERE 句

WHERE 句を使用して結果をフィルタするには、単にSQL クエリ内の WHERE 句。たとえば、「はい」の投票をフィルターするには:

cursor.execute('''SELECT COUNT(*) FROM pictures WHERE vote = "yes"''')

以上がDjango ビューで生の SQL クエリを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。