Heim >Datenbank >MySQL-Tutorial >Wie kann ich Raw-SQL-Abfragen in Django-Ansichten ausführen?

Wie kann ich Raw-SQL-Abfragen in Django-Ansichten ausführen?

Susan Sarandon
Susan SarandonOriginal
2024-12-22 17:26:10259Durchsuche

How Can I Execute Raw SQL Queries in Django Views?

Ausführen von Roh-SQL-Abfragen in Django-Ansichten

Django ermöglicht Entwicklern, Roh-SQL-Abfragen direkt aus Ansichten auszuführen. Dies kann nützlich sein, um komplexe Vorgänge auszuführen oder Daten abzurufen, auf die über Djangos ORM nicht leicht zugegriffen werden kann.

Durchführen einer Roh-SQL-Abfrage

Um eine Roh-SQL-Abfrage in Django durchzuführen, können Sie die verwenden Folgende Schritte:

  1. Importieren Sie das Verbindungsobjekt aus django.db.
  2. Erstellen Sie ein Cursorobjekt mit Cursor = Connection.cursor().
  3. Führen Sie die SQL-Abfrage mit Cursor.execute(Query) aus.
  4. Rufen Sie die Ergebnisse ab mit row =cursor.fetchone().

Beispiel

Das Folgende Das Beispiel zeigt, wie die gegebene SQL-Abfrage mit Djangos ORM und einer unformatierten SQL-Abfrage durchgeführt wird:

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-Klausel zum Filtern

Um die Ergebnisse mithilfe der WHERE-Klausel zu filtern, fügen Sie einfach WHERE ein -Klausel in der SQL-Abfrage. Um beispielsweise die Abstimmung nach „Ja“ zu filtern:

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

Das obige ist der detaillierte Inhalt vonWie kann ich Raw-SQL-Abfragen in Django-Ansichten ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn