Django

Kako izraditi osnovno pretraživanje za Django stranicu?

Kako izraditi osnovno pretraživanje za Django stranicu?

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:

  1. Instalirajte Django verziju 3+ na Ubuntu 20+ (po mogućnosti)
  2. Stvorite Django projekt
  3. 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 stvarauporabitelja

Dodajte 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 module
iz 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



Popis knjiga










% if type% type.ime % else% Popis knjiga % endif%











% za x u knjizi%

x.ime_knjige


autor x.ime_autora


$ x.cijena




% endfor%



detalj_knjige.html





knjiga.ime_knjige






knjiga.ime_knjige




Autor: knjiga.ime_autora


Upišite: type


Objava: knjiga.objavljivanje


Cijena: $ knjiga.cijena







traži.html



Rezultat pretrage









% 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 module
iz 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 (). '/ 'put se koristi za pozivanje funkcije book_detail (). put 'search /' koristi se za pozivanje funkcije search ().

url adrese.py

# Uvoz administrativnog modula
iz 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 runserver

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

Vodič za Shadow of the Tomb Raider za Linux
Shadow of the Tomb Raider dvanaesti je dodatak seriji Tomb Raider - franšizi u akcijsko-avanturističkoj igri koju je stvorio Eidos Montreal. I kritiča...
Kako pojačati FPS u Linuxu?
FPS je kratica Okviri u sekundi. Zadatak FPS-a je mjerenje broja sličica u reprodukcijama video zapisa ili igranim izvedbama. Jednostavnim riječima, b...
Najpopularnije laboratorijske igre Oculus App
Ako ste vlasnik slušalica Oculus, tada morate biti sigurni u bočno učitavanje. Bočno učitavanje postupak je instaliranja nehranjenog sadržaja na vaše ...