Django

Bagaimana Membangun Pencarian Dasar untuk Situs Django?

Bagaimana Membangun Pencarian Dasar untuk Situs Django?

Konten tertentu dari situs mana pun biasanya diambil oleh pengguna melalui pencarian Google. Namun, jika opsi pencarian ini diterapkan di situs web, maka pengguna dapat dengan mudah menemukan konten yang diinginkan di dalam situs tanpa menggunakan pencarian Google… Manfaat lain dari menambahkan opsi pencarian di dalam situs web adalah pengembang dapat mengelola hasil pencarian dengan benar. Itu berarti dia dapat mengontrol konten situs mana yang akan muncul atau tidak. Tutorial ini akan menunjukkan proses penerapan pencarian dasar di situs Django.

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 searchapp.

$ python3 kelola.py startapp searchapp

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 bagian INSTALLED_APP dari pengaturan.file py.

INSTALLED_APPS = [

'searchapp'
]

Buat folder bernama templates di dalam folder searchapp dan atur lokasi template aplikasi di bagian TEMPLATES dari pengaturan.file py.

TEMPLATE = [

… .
'DIRS': ['/home/fahmida/django_pro/searchapp/templates'],
… .
,
]

Buat Model:

Memodifikasi model.py dengan skrip berikut:. Di sini, dua kelas telah didefinisikan untuk membuat dua tabel relasional bernama booktypes dan books. Bidang tipe tabel buku adalah kunci asing yang akan muncul dari tabel tipe buku.

model.py

# Impor modul yang diperlukan
dari django.model impor db
dari django.url impor terbalik
# Buat model gor booktype
kelas Booktype(model.Model):
btipe = model.CharField(max_length=100, unik=Benar)
kelas Meta:
memesan=('tipe b',)
# Buat model buku gor
Buku kelas (model).Model):
nama_buku = model.CharField(panjang_maks=150)
author_name = model.CharField(panjang_maks=150)
jenis = model.ForeignKey(Jenis buku, on_delete=model.RIAM)
harga = model.FloatField()
publikasi = model.CharField(panjang_maks=100)
kelas Meta:
pemesanan=('nama_buku',)
def __str__(sendiri):
kembalikan diri.nama_buku
def get_url(sendiri):
return reverse('book_detail', args=[self.Indo])

Buat Template untuk Pencarian:

Tiga file HTML diperlukan agar Anda dapat membuat fitur pencarian yang ditunjukkan dalam tutorial ini. Ini adalah daftar_buku.html, buku_detail.html, dan cari.html. Daftar_buku.html akan menampilkan semua catatan dari tabel buku. buku_detail.html akan menampilkan detail buku tertentu. Pencarian.html akan menampilkan hasil pencarian setelah mengirimkan formulir pencarian.

Daftar buku.html



Daftar buku










% jika tipe % ketik.name % else % Daftar Buku % endif %











% untuk x dalam buku %

x.nama_buku


oleh x.nama_pengarang


$x.harga




% akhir untuk %



buku_detail.html





Book.nama_buku






Book.nama_buku




Penulis: buku.nama_pengarang


Jenis: jenis


Publikasi: buku.publikasi


Harga: $buku.harga







Cari.html



Hasil pencarian









% jika kueri %


% dengan hasil.dihitung sebagai total_results %
Ditemukan total_results hasil total_results|pluralize
% berakhir dengan %


% untuk c dalam hasil %

c.nama_buku


c.nama_pengarang


% kosong %

Tidak ada hasil yang ditemukan.


% akhir untuk %
% berakhir jika %






Buat Fungsi Tampilan:

Ubah tampilan.py dengan skrip berikut:. Tiga fungsi telah didefinisikan dalam skrip. Fungsi book_list() akan menampilkan book_list.file html. Fungsi book_detail() akan menampilkan book_detail.html. Fungsi pencarian () akan mencari catatan berdasarkan data yang dikirimkan oleh formulir pencarian dan menampilkan hasilnya ke dalam pencarian.html.

dilihat.py

# Impor modul yang diperlukan
dari django.pintasan impor render, get_object_or_404
dari .model impor  Buku, Jenis Buku
dari django.db.model impor Q
# Tentukan fungsi untuk menampilkan semua buku
def book_list(permintaan):
buku = buku.benda-benda.semua()
kembali render(permintaan, 'book_list.html', 'buku': buku )
# Tentukan fungsi untuk menampilkan buku tertentu
def book_detail(permintaan,id):
buku = get_object_or_404(Buku, id=id)
jenis = Jenis buku.benda-benda.semua()
t = jenis.dapatkan(id=buku.Tipe.Indo)
kembali render(permintaan, 'book_detail.html', 'buku': buku, 'tipe': t.btipe)
# Tentukan fungsi untuk mencari buku
pencarian def (permintaan):
hasil = []
jika permintaan.metode == "DAPATKAN":
permintaan = permintaan.DAPATKAN.dapatkan('pencarian')
jika permintaan == ":
kueri = 'Tidak ada'
hasil = Buku.benda.filter(Q(nama_buku__icontains=kueri) | Q(nama_pengarang__ikontainer=kueri) | Q(harga__icontains=kueri) )
kembali render(permintaan, 'cari.html', 'query': kueri, 'hasil': hasil)

Setel Jalur untuk Memanggil Fungsi Tampilan:

Ubah urlnya.py dari proyek Django dengan skrip berikut:. Empat jalur telah ditentukan dalam skrip. Jalur 'admin/' digunakan untuk membuka Dasbor Administratif Django. Jalur kosong() digunakan untuk memanggil fungsi book_list()(). '/' path digunakan untuk memanggil fungsi book_detail(). 'search/' path digunakan untuk memanggil fungsi search().

url.py

# Impor modul admin
dari django.kontribusi impor admin
# Modul jalur impor
dari django.jalur impor url
# Impor tampilan
dari tampilan impor aplikasi pencarian
# Tentukan jalur
pola url = [
jalur('admin/', admin.situs.url),
jalur(", tampilan.buku_daftar, nama='daftar_buku'),
jalur('/', tampilan.detail_buku, nama='detail_buku'),
jalur('pencarian/', tampilan.cari, nama = 'cari'),
]

Jalankan Aplikasi dari Browser:

Jalankan perintah berikut untuk menjalankan server Django.

$ python3 kelola.py runserver

Jalankan URL berikut dari browser apa pun untuk menampilkan daftar buku dari tabel.

http://localhost:8000

Jika pengguna mengklik link, “PHP dan MySQL untuk Situs Web Dinamis” maka detail buku ini akan muncul di browser.

Jika pengguna mencari kata, fisika di browser maka hasil pencarian berikut akan ditampilkan di browser:.

Kesimpulan:

Aplikasi Django dengan opsi pencarian dasar telah diimplementasikan dalam tutorial ini dengan menggunakan tabel database. Pengembang Django baru akan dapat mengimplementasikan fitur pencarian di situs web mereka setelah membaca tutorial ini.

Pertempuran untuk Tutorial Westnoth
The Battle for Wesnoth adalah salah satu game strategi open source terpopuler yang bisa kamu mainkan saat ini. Tidak hanya game ini telah dikembangkan...
0 A.D. tutorial
Dari sekian banyak game strategi di luar sana, 0 A.D. berhasil menonjol sebagai judul yang komprehensif dan permainan taktis yang sangat dalam meskipu...
Tutorial Unity3D
Pengantar Unity 3D Unity 3D adalah mesin pengembangan game yang tangguh. Ini adalah lintas platform yang memungkinkan Anda membuat game untuk seluler,...