Django

Bagaimana Membina Pencarian Asas untuk Laman Django?

Bagaimana Membina Pencarian Asas untuk Laman Django?

Kandungan tertentu dari mana-mana laman web biasanya diambil oleh pengguna melalui carian Google. Namun, jika pilihan carian ini dilaksanakan di laman web, maka pengguna dapat dengan mudah menemukan konten yang diinginkan di dalam laman web tanpa menggunakan pencarian Google… Manfaat lain dari menambahkan pilihan carian di dalam laman web adalah pengembang dapat mengurus hasil pencarian dengan baik. Itu bererti dia dapat mengawal kandungan laman web mana yang akan muncul atau tidak. Tutorial ini akan menunjukkan proses pelaksanaan carian asas di laman Django.

Prasyarat:

Sebelum mempraktikkan skrip tutorial ini, anda harus menyelesaikan 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 searchapp.

$ python3 menguruskan.py startapp searchapp

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

$ python3 menguruskan.py createuperuser

Tambahkan nama aplikasi di bahagian INSTALLED_APP tetapan.fail py.

INSTALLED_APPS = [

'carian'
]

Buat folder bernama templat di dalam folder searchapp dan tetapkan lokasi templat aplikasi di bahagian TEMPLATES dari tetapan.fail py.

TEMPLATES = [

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

Buat Model:

Ubah suai model.fail py dengan skrip berikut. Di sini, dua kelas telah ditentukan untuk membuat dua jadual hubungan yang dinamakan jenis buku dan buku. Bidang jenis jadual buku adalah kunci asing yang akan muncul dari jadual jenis buku.

model.py

# Import modul yang diperlukan
dari django.model import db
dari django.url import terbalik
# Buat model jenis buku
Jenis Buku kelas (model.Model):
btype = model.CharField (max_length = 100, unik = Benar)
kelas Meta:
pesanan = ('btype',)
# Buat buku gor model
Buku kelas (model.Model):
book_name = model.CharField (panjang maksimum = 150)
author_name = model.CharField (panjang maksimum = 150)
jenis = model.ForeignKey (Jenis Buku, on_delete = model.CASCADE)
harga = model.FloatField ()
penerbitan = model.CharField (panjang maksimum = 100)
kelas Meta:
pesanan = ('book_name',)
def __str __ (diri):
kembalikan diri.nama_nama buku
def get_url (diri):
kembali terbalik ('book_detail', args = [diri.ID])

Buat Templat untuk Mencari:

Tiga fail HTML diperlukan untuk anda membuat ciri carian yang ditunjukkan dalam tutorial ini. Ini adalah senarai buku.html, buku_detail.html, dan cari.html. Senarai buku.html akan memaparkan semua rekod dari jadual buku. Maklumat_buku.html akan memaparkan perincian buku tertentu. Pencarian.html akan memaparkan hasil carian setelah menghantar borang carian.

senarai buku.html



Senarai Buku










% jika taip% type.name % else% Senarai Buku % endif%











% untuk x dalam buku%

x.nama_ buku


oleh x.pengarang_nama


$ x.harga




% endfor%



buku_detail.html





buku.nama_ buku






buku.nama_ buku




Pengarang: buku.pengarang_nama


Jenis: type


Penerbitan: buku.penerbitan


Harga: $ buku.harga







cari.html



Hasil carian









% jika pertanyaan%


% dengan hasil.dikira sebagai jumlah_hasil%
Hasil carian total_results total_results | pluralize
% endwith%


% untuk c dalam hasil%

c.nama_ buku


c.pengarang_nama


% kosong%

Tiada keputusan dijumpai.


% endfor%
% endif%






Buat Fungsi Lihat:

Ubah suai pandangan.fail py dengan skrip berikut. Tiga fungsi telah ditentukan dalam skrip. Fungsi book_list () akan memaparkan senarai buku.fail html. Fungsi book_detail () akan memaparkan buku_detail.html. Fungsi carian () akan mencari catatan berdasarkan data yang dikirimkan oleh borang carian dan memaparkan hasilnya ke dalam pencarian.html.

pandangan.py

# Import modul yang diperlukan
dari django.pintasan import render, get_object_or_404
dari .model import Buku, Jenis Buku
dari django.db.model mengimport Q
# Tentukan fungsi untuk memaparkan semua buku
def book_list (permintaan):
buku = Buku.benda.semua()
return render (permintaan, 'book_list.html ', ' book ': book)
# Tentukan fungsi untuk memaparkan buku tertentu
def book_detail (permintaan, id):
buku = get_object_or_404 (Buku, id = id)
jenis = Jenis Buku.benda.semua()
t = jenis.dapatkan (id = buku.menaip.ID)
return render (permintaan, 'book_detail.html ', ' book ': book,' type ': t.btype)
# Tentukan fungsi untuk mencari buku
carian def (permintaan):
hasil = []
sekiranya diminta.kaedah == "DAPATKAN":
pertanyaan = permintaan.DAPATKAN.dapatkan ('cari')
jika pertanyaan == ":
pertanyaan = 'Tiada'
hasil = Buku.benda.penapis (Q (nama_ buku__icontains = pertanyaan) | Q (pengarang_nama__icontains = pertanyaan) | Q (harga__icontains = pertanyaan))
return render (permintaan, 'carian.html ', ' query ': query,' results ': hasil)

Tetapkan Jalan ke Fungsi Paparan Panggilan:

Ubah suai url.py fail projek Django dengan skrip berikut. Empat jalan telah ditentukan dalam skrip. Laluan 'admin /' digunakan untuk membuka Papan Pemuka Pentadbiran Django. Laluan kosong (") digunakan untuk memanggil fungsi book_list (). '/ 'path digunakan untuk memanggil fungsi book_detail (). 'search /' path digunakan untuk memanggil fungsi search ().

url.py

# Import modul pentadbir
dari django.admin import contrib
# Modul laluan import
dari django.laluan import url
# Paparan import
dari paparan import searchapp
# Tentukan jalan
urlpatterns = [
jalan ('admin /', pentadbir.tapak.url),
jalan (", pandangan.book_list, nama = 'book_list'),
jalan ('/', pandangan.book_detail, nama = 'book_detail'),
jalan ('carian /', pandangan.cari, nama = 'cari'),
]

Jalankan Aplikasi dari Penyemak Imbas:

Jalankan arahan berikut untuk menjalankan pelayan Django.

$ python3 menguruskan.pelari py

Jalankan URL berikut dari mana-mana penyemak imbas untuk memaparkan senarai buku dari jadual.

http: // localhost: 8000

Sekiranya pengguna mengklik pautan, "PHP dan MySQL untuk Laman Web Dinamik", maka perincian buku ini akan muncul di penyemak imbas.

Sekiranya pengguna mencari perkataan, fizik di penyemak imbas, maka hasil carian berikut akan dipaparkan di penyemak imbas.

Kesimpulan:

Aplikasi Django dengan pilihan carian asas telah dilaksanakan dalam tutorial ini dengan menggunakan jadual pangkalan data. Pembangun Django yang baru akan dapat melaksanakan ciri carian di laman web mereka setelah membaca tutorial ini.

Permainan Makmal Apl Oculus Teratas
Sekiranya anda adalah pemilik alat dengar Oculus, maka anda mesti mengetahui tentang memuatkan sideload. Sideloading adalah proses memasang kandungan ...
10 Permainan Teratas untuk Dimainkan di Ubuntu
Platform Windows telah menjadi salah satu platform dominan untuk permainan kerana peratusan besar permainan yang sedang berkembang hari ini untuk meny...
5 Permainan Arcade Terbaik untuk Linux
Pada masa kini, komputer adalah mesin serius yang digunakan untuk permainan. Sekiranya anda tidak dapat memperoleh skor tinggi baru, anda akan tahu ma...