Heim > Datenbank > MySQL-Tutorial > Wie führt man Raw-SQL-Abfragen in Django-Ansichten effizient aus?

Wie führt man Raw-SQL-Abfragen in Django-Ansichten effizient aus?

Linda Hamilton
Freigeben: 2024-12-18 22:53:12
Original
566 Leute haben es durchsucht

How to Efficiently Execute Raw SQL Queries in Django Views?

SQL-Abfragen in Django-Ansichten verfeinern

In bestimmten Szenarien ist die Durchführung von Roh-SQL-Abfragen in Django-Ansichten erforderlich. In diesem Beitrag wird erläutert, wie solche Abfragen effektiv ausgeführt werden.

Ausführen von Roh-SQL-Abfragen

Um eine Roh-SQL-Abfrage in einer Django-Ansicht auszuführen, verwenden Sie zum Herstellen das Verbindungsmodul und seine Cursor()-Methode eine Verbindung und ein Cursor. Mit dem Cursor können Abfragen mit der Methodeexecute() ausgeführt werden.

from django.db import connection

cursor = connection.cursor()
cursor.execute('SELECT count(*) FROM people_person')
Nach dem Login kopieren

Filtern mit einer WHERE-Klausel

Um einen Filter auf Ihre Abfrage anzuwenden, fügen Sie eine WHERE-Klausel hinzu, die den Filter angibt Bedingung.

cursor.execute('''SELECT count(*) FROM people_person WHERE vote = "yes"''')
Nach dem Login kopieren

Zugriff auf Abfrageergebnisse

Abfrageergebnisse können mit der Methode fetchone() am Cursor abgerufen werden. Dies gibt ein Tupel zurück, das die Ergebniswerte enthält. Im obigen Beispiel ist das Ergebnis beispielsweise die Anzahl aller Personenobjekte, deren Abstimmung auf „Ja“ gesetzt ist.

row = cursor.fetchone()
print(row)  # Output: (12,)
Nach dem Login kopieren

Implementierung in Django-Ansichten

Zur Integration der Roh-SQL-Abfrage In eine Django-Ansicht kann der Code in der Frage wie folgt geändert werden:

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)
    )
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie führt man Raw-SQL-Abfragen in Django-Ansichten effizient aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage