Prasyarat:
Sebelum mempraktikkan skrip tutorial ini, anda harus menyelesaikan tugas-tugas berikut.
- Pasang Django versi 3+ di Ubuntu 20+ (lebih baik)
- Buat projek Django
- 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 queryappJalankan 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 createuperuserTambahkan 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 importdari 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 queryappJalankan berhijrah perintah untuk melaksanakan perintah SQL dan membuat semua jadual dalam pangkalan data yang ditentukan dalam model.py fail.
$ python3 menguruskan.py berhijrahUbah 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 pentadbirdari 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
Tutorial Django QuerySet
Mencari Produk
ID | Nama | Jenama | Harga |
---|---|---|---|
produk.ID | produk.nama | produk.jenama | style = "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 importdari 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 pentadbirdari 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.