Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengira Rekod Pangkalan Data dengan Cekap Menggunakan Pertanyaan SQL Mentah dalam Pandangan Django?
Dalam Django, pertanyaan SQL mentah boleh dilakukan dalam paparan untuk mendapatkan atau memanipulasi data yang mungkin tidak mudah diakses melalui ORM Django (Pemetaan Perkaitan Objek). Pertimbangkan kod berikut dalam views.py:
from app.models import Picture def results(request): all = Picture.objects.all() yes = Picture.objects.filter(vote='yes').count()
Kod ini bertujuan untuk mengira bilangan objek Gambar dengan undian 'ya'. Untuk mencapai ini menggunakan pertanyaan SQL mentah, kita boleh meneruskan seperti berikut:
from django.db import connection def results(request): with connection.cursor() as cursor: cursor.execute("SELECT COUNT(*) FROM app_picture WHERE vote = 'yes'") row = cursor.fetchone() yes = row[0] # Extract the count from the first row all = Picture.objects.all() return render_to_response( "results.html", {"picture": picture, "all": all, "yes": yes}, context_instance=RequestContext(request), )
Kod ini membuka sambungan ke pangkalan data, mencipta kursor untuk melaksanakan pertanyaan, melaksanakan pertanyaan SQL mentah dengan klausa WHERE untuk tapis undian sebagai 'ya' dan mengeluarkan kiraan daripada baris pertama keputusan. Ia kemudian melaksanakan pertanyaan Django ORM biasa untuk mendapatkan semula semua objek Gambar dan akhirnya memaparkan templat "results.html" dengan data yang diperoleh.
Menggunakan pertanyaan SQL mentah boleh memberikan lebih fleksibiliti dan kawalan ke atas SQL asas yang dilaksanakan, tetapi adalah penting untuk mempertimbangkan implikasi keselamatan dan memastikan pengesahan input yang betul untuk mengelakkan kemungkinan serangan suntikan SQL.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengira Rekod Pangkalan Data dengan Cekap Menggunakan Pertanyaan SQL Mentah dalam Pandangan Django?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!