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.
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')
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"''')
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,)
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) )
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!