Django

Cara menggunakan queryset di Django

Cara menggunakan queryset di Django
Sebagian besar aplikasi web diimplementasikan dengan database sekarang. queryset digunakan dalam aplikasi Django untuk mengambil catatan dengan memfilter atau mengiris atau mengurutkan tabel database tanpa mengubah data asli. Model menggunakan Django untuk membuat tabel dalam database. Jadi, pengetahuan menggunakan model di Django diperlukan untuk memahami penggunaan queryset. Fungsi utama dari queryset adalah untuk mengulang catatan tabel database dengan mengubahnya menjadi query SQL SQL. Itu dapat digunakan dari baris perintah python atau dengan menulis skrip python untuk menampilkan output browser. Penggunaan queryset untuk mengambil data dari tabel database dengan cara yang berbeda telah dijelaskan dalam tutorial ini.

Prasyarat:

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

  1. Instal Django versi 3+ di Ubuntu 20+ (lebih disukai)
  2. Buat proyek Django
  3. 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 queryapp

Jalankan 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 super

Tambahkan 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 impor
dari 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 queryapp

Jalankan migrasi perintah untuk menjalankan perintah SQL dan membuat semua tabel dalam database yang didefinisikan di model.py mengajukan.

$ python3 kelola.py bermigrasi

Ubah 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 admin
dari 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



<br>Tutorial Kumpulan Kueri Django<br>



Mencari Produk



% csrf_token %
Cari Produk:







% untuk produk di object_list %



% akhir untuk %
IndoNamaMerekHarga
produk.Indo produk.nama produk.merekstyle="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 ListView
dari 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 admin
dari 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.

Cara Menginstal dan Memainkan Doom di Linux
Pengantar Doom Seri Doom berasal dari tahun 90-an setelah rilis Doom. Itu adalah hit instan dan sejak saat itu seri game telah menerima banyak penghar...
Vulkan untuk Pengguna Linux
Dengan setiap generasi baru kartu grafis, kami melihat pengembang game mendorong batas kesetiaan grafis dan selangkah lebih dekat ke fotorealisme. Tet...
OpenTTD vs Simutrans
Membuat simulasi transportasi Anda sendiri bisa menyenangkan, santai, dan sangat menarik. Itulah mengapa Anda perlu memastikan bahwa Anda mencoba game...