> 데이터 베이스 > MySQL 튜토리얼 > Django 뷰에서 원시 SQL 쿼리를 효율적으로 실행하는 방법은 무엇입니까?

Django 뷰에서 원시 SQL 쿼리를 효율적으로 실행하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-12-18 22:53:12
원래의
566명이 탐색했습니다.

How to Efficiently Execute Raw SQL Queries in Django Views?

Django 뷰에서 SQL 쿼리 구체화

특정 시나리오에서는 Django 뷰 내에서 원시 SQL 쿼리를 수행해야 합니다. 이 게시물에서는 이러한 쿼리를 효과적으로 실행하는 방법에 대해 설명합니다.

원시 SQL 쿼리 실행

Django 뷰에서 원시 SQL 쿼리를 실행하려면 연결 모듈과 해당 커서() 메서드를 사용하여 설정합니다. 연결 및 커서. 커서를 사용하면 실행() 메서드를 사용하여 쿼리를 실행할 수 있습니다.

from django.db import connection

cursor = connection.cursor()
cursor.execute('SELECT count(*) FROM people_person')
로그인 후 복사

WHERE 절로 필터링

쿼리에 필터를 적용하려면 필터를 지정하는 WHERE 절을 추가하세요. 조건.

cursor.execute('''SELECT count(*) FROM people_person WHERE vote = "yes"''')
로그인 후 복사

쿼리 결과 액세스

쿼리 결과는 다음을 사용하여 검색할 수 있습니다. 커서의 fetchone() 메소드. 이는 결과 값을 포함하는 튜플을 반환합니다. 예를 들어, 위의 예에서 결과는 투표가 "yes"로 설정된 모든 Person 객체의 개수입니다.

row = cursor.fetchone()
print(row)  # Output: (12,)
로그인 후 복사

Django 뷰 구현

원시 SQL 쿼리를 통합하려면 Django 뷰로 질문의 코드를 다음과 같이 수정할 수 있습니다:

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

def results(request):
    cursor = connection.cursor()
    cursor.execute('''SELECT count(*) FROM app_picture''')
    all_count = cursor.fetchone()[0]

    cursor.execute('''SELECT count(*) FROM app_picture WHERE vote = "yes"''')
    yes_count = cursor.fetchone()[0]

    return render_to_response(
        'results.html', 
        {'all': all_count, 'yes': yes_count}, 
        context_instance=RequestContext(request)
    )
로그인 후 복사

위 내용은 Django 뷰에서 원시 SQL 쿼리를 효율적으로 실행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿