Korisnici obično dohvaćaju određeni sadržaj bilo koje web stranice putem Google pretraživanja. Međutim, ako je ova opcija pretraživanja implementirana na web mjestu, tada korisnici mogu lako pronaći željeni sadržaj na web mjestu bez upotrebe Google pretraživanja ... Još jedna prednost dodavanja opcije pretraživanja unutar web mjesta je ta što programer može pravilno upravljati izlaznim rezultatima pretraživanja. To znači da on može kontrolirati koji će se sadržaj stranice pojaviti ili ne. Ovaj će vodič prikazati postupak implementacije osnovnog pretraživanja na web mjestu Django.
Preduvjeti:
Prije vježbanja skripte ovog vodiča, morate izvršiti sljedeće zadatke:
- Instalirajte Django verziju 3+ na Ubuntu 20+ (po mogućnosti)
- Stvorite Django projekt
- Pokrenite Django poslužitelj kako biste provjerili poslužitelj ispravno radi ili ne.
Postavljanje aplikacije Django:
Pokrenite sljedeću naredbu da biste stvorili Django aplikaciju pod nazivom searchapp.
$ python3 upravljanje.py startapp pretraživačPokrenite sljedeću naredbu za stvaranje korisnika za pristup Django bazi podataka. Ako ste već stvorili korisnika, tada ne morate pokretati naredbu.
$ python3 upravljanje.py stvarauporabiteljaDodajte naziv aplikacije u INSTALLED_APP dio postavki.py datoteka.
INSTALLED_APPS = [..
"pretraživač"
]
Stvorite mapu s predlošcima unutar mape searchapp i postavite mjesto predloška aplikacije u dijelu PREDLOŽKE u postavkama.py datoteka.
PREDLOZI = [.. .
'DIRS': ['/ home / fahmida / django_pro / searchapp / predlošci'],
.. .
,
]
Izrada modela:
Izmijenite modele.py datoteku sa sljedećom skriptom. Ovdje su definirane dvije klase za stvaranje dviju relacijskih tablica pod nazivom tipovi knjiga i knjige. Polje vrste tablice knjiga strani je ključ koji će se pojaviti iz tablice vrsta knjiga.
modeli.py
# Uvezite potrebne moduleiz djanga.db modeli uvoza
iz djanga.urls import reverse
# Stvori tip knjige gor model
razred Booktype (modeli.Model):
btype = modeli.CharField (max_length = 100, jedinstveno = True)
klasa Meta:
poredak = ('btype',)
# Napravite model gor book
razred Knjiga (modeli.Model):
ime_knjige = modeli.CharField (max_length = 150)
ime_autora = modeli.CharField (max_length = 150)
vrsta = modeli.ForeignKey (Vrsta knjige, on_delete = modeli.KASKADA)
cijena = modeli.FloatField ()
publikacija = modeli.CharField (max_length = 100)
klasa Meta:
narudžba = ('ime_knjige',)
def __str __ (samo):
vratiti se.ime_knjige
def get_url (self):
vrati natrag ('book_detail', args = [self.iskaznica])
Izradite predloške za pretraživanje:
Tri HTML datoteke potrebne su za stvaranje značajke pretraživanja prikazane u ovom vodiču. Ovo su book_list.html, detalj_knjige.html i pretražite.html. Popis knjiga.html će prikazati sve zapise iz tablice knjiga. Pojedinosti o knjizi.html će prikazati detalje određene knjige. Potraga.html će prikazati rezultat pretraživanja nakon slanja obrasca za pretraživanje.
knjiga_popisa.html
detalj_knjige.html
knjiga.ime_knjige
Autor: knjiga.ime_autora
Upišite: type
Objava: knjiga.objavljivanje
Cijena: $ knjiga.cijena
traži.html
% if query%
% s rezultatima.računati kao ukupni_rezultati%
Pronađen total_results rezultat total_results | pluralize
% endwith%
% za c u rezultatima%
c.ime_knjige
c.ime_autora
% prazno%
Nema rezultata.
% endfor%
% završi ako %
Stvori funkcije prikaza:
Izmijenite poglede.py datoteku sa sljedećom skriptom. U skripti su definirane tri funkcije. Funkcija book_list () prikazat će book_list.html datoteku. Funkcija book_detail () prikazat će book_detail.html. Funkcija search () pretražit će zapise na temelju podataka dostavljenih putem obrasca za pretraživanje i prikazati rezultat u pretraživanju.html.
pogleda.py
# Uvezite potrebne moduleiz djanga.prečaci uvoze prikaz, get_object_or_404
iz .modeli uvoze Book, Booktype
iz djanga.db.modeli uvoz Q
# Definirajte funkciju za prikaz svih knjiga
def book_list (zahtjev):
knjiga = Knjiga.predmeta.svi()
return render (zahtjev, 'book_list.html ', ' knjiga ': knjiga)
# Definirajte funkciju za prikaz određene knjige
def book_detail (zahtjev, id):
book = get_object_or_404 (Book, id = id)
vrste = vrsta knjige.predmeta.svi()
t = vrste.get (id = knjiga.tip.iskaznica)
return render (zahtjev, 'book_detail.html ', ' knjiga ': knjiga,' tip ': t.btype)
# Definirajte funkciju pretraživanja knjige
def pretraga (zahtjev):
rezultati = []
ako zahtjev.metoda == "GET":
upit = zahtjev.DOBITI.get ('pretraga')
ako je upit == ":
query = 'Ništa'
rezultati = Knjiga.predmeta.filtar (Q (ime_knjige__kontents = upit) | Q (ime_auto__koje sadrži = upit) | Q (cijena__kontents = upit))
return render (zahtjev, 'pretraga.html ', ' upit ': upit,' rezultati ': rezultati)
Postavljanje putova na funkcije prikaza poziva:
Izmijenite URL-ove.py datoteku Django projekta sa sljedećom skriptom. U skripti su definirane četiri staze. Put 'admin /' koristi se za otvaranje Django administrativne nadzorne ploče. Prazna staza (") koristi se za pozivanje funkcije book_list (). '
url adrese.py
# Uvoz administrativnog modulaiz djanga.doprinos uvoz admin
# Uvoz modula puta
iz djanga.put uvoza URL-ova
# Uvoz pogleda
iz pregleda pretraživanja uvoza
# Definirajte putove
urlpatterns = [
put ('admin /', admin.web mjesto.URL-ovi),
put (", prikazi.book_list, name = 'book_list'),
path ('/', prikazi.detalj_knjige, name = 'detalj_knjige'),
path ('pretraga /', prikazi.search, name = 'search'),
]
Pokrenite aplikaciju iz preglednika:
Izvedite sljedeću naredbu za pokretanje Django poslužitelja.
$ python3 upravljanje.py runserverPokrenite sljedeći URL iz bilo kojeg preglednika da biste prikazali popis knjiga iz tablice.
http: // localhost: 8000
Ako korisnik klikne na vezu, "PHP i MySQL za dinamičke web stranice", tada će se detalji ove knjige pojaviti u pregledniku.
Ako korisnik pretražuje riječ, fiziku u pregledniku, tada će se u pregledniku prikazati sljedeći rezultat pretraživanja.
Zaključak:
U ovom je vodiču implementirana aplikacija Django s osnovnom opcijom pretraživanja pomoću tablica baze podataka. Novi programeri Django moći će implementirati značajku pretraživanja na svoje web mjesto nakon čitanja ovog vodiča.