首頁 > 資料庫 > mysql教程 > 如何在 Django 視圖中執行原始 SQL 查詢?

如何在 Django 視圖中執行原始 SQL 查詢?

Susan Sarandon
發布: 2024-12-22 17:26:10
原創
254 人瀏覽過

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 子句。例如,要過濾「yes」的投票:

cursor.execute('''SELECT COUNT(*) FROM pictures WHERE vote = "yes"''')
登入後複製

以上是如何在 Django 視圖中執行原始 SQL 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板