Prasyarat:
Sebelum mempraktikkan skrip tutorial ini, Anda harus menyelesaikan tugas-tugas berikut:.
- Instal Django versi 3+ di Ubuntu 20+ (lebih disukai)
- Buat proyek Django
- Jalankan server Django untuk memeriksa server bekerja dengan benar atau tidak.
Siapkan aplikasi Django:
Jalankan perintah berikut untuk membuat aplikasi Django bernama aplikasi permintaan.
$ python3 kelola.py startapp queryappJalankan perintah berikut untuk membuat pengguna untuk mengakses database Django. Jika Anda telah membuat pengguna sebelumnya, maka Anda tidak perlu menjalankan perintah.
$ python3 kelola.py buat pengguna superTambahkan nama aplikasi di INSTALLED_APP bagian dari pengaturan.py mengajukan.
INSTALLED_APPS = […
'permintaan aplikasi'
]
Buat folder bernama template di dalam aplikasi permintaan folder dan atur template lokasi aplikasi di TEMPLATE bagian dari pengaturan.py mengajukan.
TEMPLATE = [… .
'DIRS': ['/home/fahmida/django_pro/queryapp/templates'],
… .
,
]
Buat model untuk tabel database:
Buka model.py file dari aplikasi permintaan folder dan tambahkan skrip berikut untuk menentukan struktur produk meja. Produk kelas didefinisikan untuk membuat tabel bernama produk dengan nama, jenis, merek, dan harga bidang. Sini, nama, jenis, dan merek bidang akan menyimpan data karakter, dan harga bidang akan menyimpan data integer.
model.py
# Modul model impordari django.model impor db
# Tentukan kelas untuk membuat tabel produk
Produk kelas (model).Model):
nama = model.CharField(panjang_maks=100)
jenis = model.CharField(max_length=30)
merek = model.CharField(max_length=50)
harga = model.IntegerField()
Jalankan kepindahan perintah untuk membuat migrasi baru berdasarkan perubahan yang dibuat oleh model.
$ python3 kelola.py makemigrations queryappJalankan migrasi perintah untuk menjalankan perintah SQL dan membuat semua tabel dalam database yang didefinisikan di model.py mengajukan.
$ python3 kelola.py bermigrasiUbah konten admin.py file dengan konten berikut:. Sini, kelas Produk models didaftarkan dengan menggunakan daftar() metode untuk menampilkan produk tabel di dasbor administrasi Django.
admin.py
# Impor modul admindari django.kontribusi impor admin
# Model Produk Impor
dari .model impor Produk
# Daftarkan model Produk
admin.situs.daftar (Produk)
Buat file template bernama Daftar Produk.html di dalam queryapp/templat/ dengan skrip berikut. Script ini akan menampilkan semua data dari produk tabel dalam bentuk tabel dengan kotak pencarian. Pengguna akan dapat mencari catatan tertentu dari tabel produk dengan menggunakan formulir pencarian. untuk loop digunakan dalam skrip untuk mengulangi data yang diteruskan dari dilihat.py mengajukan.
Daftar Produk.html
Tutorial Kumpulan Kueri Django
Mencari Produk
Indo | Nama | Merek | Harga |
---|---|---|---|
produk.Indo | produk.nama | produk.merek | style="text-align:right">$produk.harga |
Ubah konten dilihat.py file dengan skrip berikut:. Nama model dan template didefinisikan dalam Daftar Produk kelas. get_queryset() metode kelas didefinisikan dalam skrip untuk memfilter data berdasarkan konten yang dikirimkan oleh kotak pencarian templat. Produk.benda-benda.semua() metode mengembalikan semua catatan dari produk meja. permintaan.DAPATKAN.kunci() metode yang digunakan dalam skrip untuk memeriksa data apa pun yang dikirimkan oleh formulir pencarian. Jika metode ini kembali benar, lalu permintaan.DAPATKAN.dapatkan('src') metode yang digunakan untuk memeriksa nilai yang dikirimkan kosong atau tidak. Jika metode ini mengembalikan nilai yang tidak kosong, maka nilai tersebut akan disimpan dalam variabel, kata kunci, dan itu akan digunakan untuk memfilter data berdasarkan merek dan Tipe bidang dari produk meja.
dilihat.py
# Impor modul ListViewdari django.dilihat.ListView impor generik
# Modul Produk Impor
dari .model impor Produk
# Impor modul Q
dari django.db.model impor Q
# Tentukan kelas untuk Query data
kelas ProductList(ListView):
# Tentukan model
model = Produk
# Tentukan template
template_name = 'Daftar produk.html'
def get_queryset(sendiri):
# Atur kumpulan kueri default
queryset = Produk.benda-benda.semua()
# Periksa nilai formulir yang dikirimkan atau tidak
jika diri sendiri.permintaan.DAPATKAN.kunci():
# Periksa kata kunci pencarian
jika diri sendiri.permintaan.DAPATKAN.dapatkan('src') != ":
kata kunci = diri sendiri.permintaan.DAPATKAN.dapatkan('src')
# Atur kumpulan kueri berdasarkan kata kunci pencarian
queryset = Produk.benda-benda.filter(Q(merek=kata kunci.kapitalisasi()) | T(tipe=kata kunci.huruf besar()))
kembali set kueri
Ubah konten url.py file dengan skrip berikut:. Dalam naskah, 'cariPro/' path didefinisikan untuk memanggil Daftar Produk.sebagai_view() metode yang akan mengirim semua data dan data yang disaring dari of produk tabel ke file template.
url.py
# Impor modul admindari django.kontribusi impor admin
# Impor jalur dan sertakan modul
dari django.jalur impor url
# Impor modul SearchEmployee
dari queryapp.lihat impor Daftar Produk
pola url = [
# Tentukan jalur untuk admin
jalur('admin/', admin.situs.url),
# Tentukan jalur untuk mencari produk
path('searchPro/', Daftar Produk.as_view()),
Tambahkan catatan ke dalam tabel:
Buka halaman Administrasi Django dan tambahkan beberapa catatan ke dalam produk tabel untuk menerapkan queryset pada saat itu. Di sini, lima catatan telah dimasukkan.
Semua catatan produk dengan kotak pencarian akan ditampilkan di browser setelah menjalankan URL berikut:.
http://localhost:8000/searchPro
Semua produk sampo ditampilkan jika jenis produk, 'sampo' akan dicari di kotak pencarian.
Produk susu bubuk dari yang segar merek akan ditampilkan jika merek produk, 'segar' akan dicari di kotak pencarian.
Kesimpulan:
Cara memfilter data tabel database sederhana dengan menggunakan queryset telah dijelaskan dalam tutorial ini. Data dapat disaring dengan cara yang berbeda. Pembaca akan mengerti menggunakan queryset untuk menyaring atau mencari data di browser setelah membaca tutorial ini.