Django

Cara menggunakan queryset dalam django

Cara menggunakan queryset dalam django
Sebilangan besar aplikasi web dilaksanakan dengan pangkalan data sekarang. queryset digunakan dalam aplikasi Django untuk mengambil rekod dengan menyaring atau mengiris atau memesan jadual pangkalan data tanpa mengubah data asal. Model tersebut menggunakan Django untuk membuat jadual dalam pangkalan data. Jadi, pengetahuan mengenai penggunaan model di Django adalah perlu untuk memahami penggunaan queryset. Fungsi utama dari queryset adalah untuk mengulangi catatan jadual pangkalan data dengan mengubahnya menjadi pertanyaan SQL. Ia dapat digunakan dari baris perintah python atau dengan menulis skrip python untuk memaparkan output penyemak imbas. Penggunaan set pertanyaan untuk mengambil data dari jadual pangkalan data dengan cara yang berbeza telah dijelaskan dalam tutorial ini.

Prasyarat:

Sebelum mempraktikkan skrip tutorial ini, anda harus menyelesaikan tugas-tugas berikut.

  1. Pasang Django versi 3+ di Ubuntu 20+ (lebih baik)
  2. Buat projek Django
  3. Jalankan pelayan Django untuk memeriksa pelayan berfungsi dengan betul atau tidak.

Sediakan aplikasi Django:

Jalankan arahan berikut untuk membuat aplikasi Django bernama pertanyaan.

$ python3 menguruskan.py startapp queryapp

Jalankan arahan berikut untuk membuat pengguna untuk mengakses pangkalan data Django. Sekiranya anda telah membuat pengguna sebelumnya, maka anda tidak perlu menjalankan perintah.

$ python3 menguruskan.py createuperuser

Tambahkan nama aplikasi di DIPASANG_APP sebahagian tetapan.py fail.

INSTALLED_APPS = [

'pertanyaan'
]

Buat folder bernama templat di dalam pertanyaan folder dan tetapkan templat lokasi aplikasi di TEMPAT sebahagian tetapan.py fail.

TEMPLATES = [

… .
'DIRS': ['/ rumah / fahmida / django_pro / queryapp / templat'],
… .
,
]

Buat model untuk jadual pangkalan data:

Buka model.py fail dari pertanyaan folder dan tambahkan skrip berikut untuk menentukan struktur produk jadual. Produk kelas ditakrifkan untuk membuat jadual yang dinamakan produk dengan nama, jenis, jenama, dan harga ladang. Di sini, nama, jenis, dan jenama medan akan menyimpan data watak, dan harga medan akan menyimpan data integer.

model.py

# Modul model import
dari django.model import db
# Tentukan kelas untuk membuat jadual produk
Produk kelas (model.Model):
nama = model.CharField (panjang maksimum = 100)
jenis = model.CharField (panjang maksimum = 30)
jenama = model.CharField (panjang maksimum = 50)
harga = model.IntegerField ()

Jalankan penghijrahan arahan untuk membuat migrasi baru berdasarkan perubahan yang dibuat oleh model.

$ python3 menguruskan.py makemigrations queryapp

Jalankan berhijrah perintah untuk melaksanakan perintah SQL dan membuat semua jadual dalam pangkalan data yang ditentukan dalam model.py fail.

$ python3 menguruskan.py berhijrah

Ubah suai kandungan pentadbir.py fail dengan kandungan berikut. Di sini, Produk produk models didaftarkan dengan menggunakan daftar () kaedah untuk memaparkan produk jadual di papan pemuka pentadbiran Django.

pentadbir.py

# Import modul pentadbir
dari django.admin import contrib
# Model produk import
dari .model mengimport Produk
# Daftar model Produk
pentadbir.tapak.daftar (Produk)

Buat fail templat bernama senarai produk.html di dalam pertanyaan / templat / dengan skrip berikut. Skrip ini akan memaparkan semua data dari produk jadual dalam bentuk jadual dengan kotak carian. Pengguna akan dapat mencari catatan tertentu dari jadual produk dengan menggunakan borang carian. untuk gelung digunakan dalam skrip untuk mengulangi data yang dilalui dari pandangan.py fail.

senarai produk.html



<br>Tutorial Django QuerySet<br>



Mencari Produk



% csrf_token%
Cari Produk:







% untuk produk dalam object_list%



% endfor%
IDNamaJenamaHarga
produk.ID produk.nama produk.jenamastyle = "text-align: right"> $ produk.harga



Ubah suai kandungan pandangan.py fail dengan skrip berikut. Nama model dan templat ditentukan dalam Senarai produk kelas. get_queryset () kaedah kelas didefinisikan dalam skrip untuk menyaring data berdasarkan kandungan yang dihantar oleh kotak carian templat. Produk.benda.semua() kaedah mengembalikan semua rekod produk meja. permintaan.DAPATKAN.kunci () kaedah digunakan dalam skrip untuk memeriksa data yang dihantar oleh borang carian. Sekiranya kaedah ini kembali benar, maka permintaan.DAPATKAN.dapatkan ('src') kaedah digunakan untuk memeriksa nilai yang dihantar kosong atau tidak. Sekiranya kaedah ini mengembalikan nilai yang tidak kosong, maka nilainya akan disimpan dalam pemboleh ubah, kata kunci, dan itu akan digunakan untuk menyaring data berdasarkan jenama dan menaip ladang dari produk meja.

pandangan.py

# Modul ListView import
dari django.pandangan.ListView import generik
# Modul Produk Import
dari .model mengimport Produk
# Modul import Q
dari django.db.model mengimport Q
# Tentukan kelas untuk Meminta data
ProductList kelas (ListView):
# Tentukan model
model = Produk
# Tentukan templat
template_name = 'senarai produk.html '
def get_queryset (diri):
# Tetapkan set pertanyaan lalai
set pertanyaan = Produk.benda.semua()
# Periksa nilai borang dihantar atau tidak
sekiranya diri.permintaan.DAPATKAN.kunci ():
# Periksa kata kunci carian
sekiranya diri.permintaan.DAPATKAN.dapatkan ('src') != ":
kata kunci = diri.permintaan.DAPATKAN.dapatkan ('src')
# Tetapkan set pertanyaan berdasarkan kata kunci carian
set pertanyaan = Produk.benda.tapis (Q (jenama = kata kunci.huruf besar ()) | Q (jenis = kata kunci.huruf besar ()))
kembali pertanyaan

Ubah suai kandungan url.py fail dengan skrip berikut. Dalam skrip, 'cariPro/ 'path ditakrifkan untuk memanggil Senarai produk.as_lihat () kaedah yang akan menghantar semua data dan data yang disaring dari produk jadual ke fail templat.

url.py

# Import modul pentadbir
dari django.admin import contrib
# Laluan import dan sertakan modul
dari django.laluan import url
# Import modul SearchEm Employee
dari pertanyaan.paparan import ProductList
urlpatterns = [
# Tentukan jalan untuk admin
jalan ('admin /', pentadbir.tapak.url),
# Tentukan jalan untuk mencari produk
jalan ('searchPro /', ProductList.as_lihat ()),

Tambahkan rekod ke dalam jadual:

Buka halaman Pentadbiran Django dan tambahkan beberapa rekod ke dalam produk jadual untuk menggunakan set pertanyaan pada masa itu. Di sini, lima rekod telah dimasukkan.

Semua rekod produk dengan kotak carian akan dipaparkan di penyemak imbas setelah menjalankan URL berikut.

http: // localhost: 8000 / searchPro


Semua produk syampu dipaparkan jika jenis produk, 'syampu'akan dicari di kotak carian.

Produk susu tepung dari yang Segar jenama akan dipaparkan jika jenama produk, 'segar'akan dicari di kotak carian.

Kesimpulan:

Cara menyaring data jadual pangkalan data sederhana dengan menggunakan set pertanyaan telah dijelaskan dalam tutorial ini. Data dapat disaring dengan cara yang berbeza. Pembaca akan memahami menggunakan set pertanyaan untuk menyaring atau mencari data di penyemak imbas setelah membaca tutorial ini.

Trackpad dan Mouse Pointer pada skrin Windows AppyMouse untuk Tablet Windows
Pengguna tablet sering kehilangan penunjuk tetikus, terutama ketika mereka biasa menggunakan komputer riba. Telefon pintar dan tablet skrin sentuh dil...
Butang tetikus tengah tidak berfungsi pada Windows 10
The butang tetikus tengah membantu anda menelusuri halaman web dan skrin yang panjang dengan banyak data. Sekiranya ia berhenti, anda akan menggunakan...
Cara menukar butang tetikus Kiri & Kanan pada PC Windows 10
Sudah menjadi kebiasaan bahawa semua peranti tetikus komputer dirancang secara ergonomik untuk pengguna tangan kanan. Tetapi ada peranti tetikus yang ...