Django

Kā izveidot pamata meklēšanu vietnei Django?

Kā izveidot pamata meklēšanu vietnei Django?

Lietotāji parasti iegūst noteiktu vietnes saturu, izmantojot Google meklēšanu. Tomēr, ja šī meklēšanas opcija tiek ieviesta vietnē, lietotāji var viegli atrast sev vēlamo saturu vietnē, neizmantojot Google meklēšanu ... Vēl viens meklēšanas opcijas pievienošanas vietnes ieguvums ir tas, ka izstrādātājs var pareizi pārvaldīt meklēšanas rezultātu. Tas nozīmē, ka viņš var kontrolēt, kurš vietnes saturs tiks parādīts vai nē. Šī apmācība parādīs pamata meklēšanas ieviešanas procesu Django vietnē.

Priekšnosacījumi:

Pirms praktizēt šīs apmācības skriptu, jums ir jāveic šādi uzdevumi:

  1. Instalējiet Django versiju 3+ Ubuntu 20+ (vēlams)
  2. Izveidojiet Django projektu
  3. Palaidiet Django serveri, lai pārbaudītu, vai serveris darbojas pareizi.

Django lietotnes iestatīšana:

Palaidiet šo komandu, lai izveidotu Django lietotni ar nosaukumu searchapp.

$ python3 pārvaldīt.py startapp searchapp

Palaidiet šo komandu, lai izveidotu lietotāju piekļuvei Django datu bāzei. Ja esat iepriekš izveidojis lietotāju, komanda nav jāpalaiž.

$ python3 pārvaldīt.py rada liellietotāju

Pievienojiet lietotnes nosaukumu iestatījumu daļā INSTALLED_APP.py fails.

INSTALLED_APPS = [

'searchapp'
]

Izveidojiet mapi ar nosaukumu veidnes mapē searchapp un iestatījumu daļā TEMPLATES iestatiet lietotnes veidnes atrašanās vietu.py fails.

PARAUGI = [

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

Izveidot modeļus:

Modificēt modeļus.py fails ar šādu skriptu. Šeit ir noteiktas divas klases, lai izveidotu divas relāciju tabulas ar nosaukumu grāmatu tipi un grāmatas. Grāmatu tabulas tipa lauks ir sveša atslēga, kas parādīsies no grāmatu tipu tabulas.

modeļiem.py

# Importējiet nepieciešamos moduļus
no django.db importēšanas modeļi
no django.URL importēšana reversā
# Izveidojiet parauga grāmatiņu
klases grāmatu tips (modeļi.Modelis):
btype = modeļi.CharField (max_length = 100, unikāls = True)
klase Meta:
pasūtīšana = ('btype',)
# Izveidojiet modeļa grāmatu
klases grāmata (modeļi.Modelis):
grāmatas_nosaukums = modeļi.CharField (maks. Garums = 150)
autora_nosaukums = modeļi.CharField (maks. Garums = 150)
tips = modeļi.ForeignKey (Booktype, on_delete = modeļi.KASKĀDE)
cena = modeļi.FloatField ()
publikācija = modeļi.CharField (maks. Garums = 100)
klase Meta:
pasūtīšana = ('grāmatas_nosaukums',)
def __str __ (pats):
atgriezties pats.grāmatas_nosaukums
def get_url (pats):
atgriezties reverse ('book_detail', args = [pats.id])

Izveidojiet veidnes meklēšanai:

Lai izveidotu šajā apmācībā parādīto meklēšanas funkciju, ir nepieciešami trīs HTML faili. Tie ir book_list.html, book_detail.html un meklējiet.html. Grāmatu saraksts.html parādīs visus ierakstus no grāmatu tabulas. Grāmatas_sīkāka informācija.html parādīs informāciju par konkrētu grāmatu. Meklēšana.Pēc meklēšanas formas iesniegšanas html parādīs meklēšanas rezultātu.

book_list.html



Grāmatu saraksts










%, ja tips% tips.nosaukums % else% Grāmatu saraksts % endif%











% par x grāmatā%

x.grāmatas_nosaukums


autors: x.autora_nosaukums


$ x.cena




% endfor%



grāmatas_sīkāka informācija.html





grāmata.grāmatas_nosaukums






grāmata.grāmatas_nosaukums




Autors: grāmata.autora_nosaukums


Tips: type


Publikācija: grāmata.publikācija


Cena: $ grāmata.cena







Meklēt.html



Meklēšanas rezultāts









%, ja vaicājums%


% ar rezultātiem.skaitīt kā kopējie_rezultāti%
Atrasts total_results rezultāts total_results | pluralize
% endwith%


% c rezultātos%

c.grāmatas_nosaukums


c.autora_nosaukums


% tukšs%

Nekas nav atrasts.


% endfor%
% endif%






Izveidot skata funkcijas:

Mainīt skatus.py fails ar šādu skriptu. Skriptā ir definētas trīs funkcijas. Funkcija book_list () parādīs book_list.HTML fails. Funkcija book_detail () parādīs book_detail.html. Funkcija search () meklēs ierakstus, pamatojoties uz meklēšanas formas iesniegtajiem datiem, un parādīs rezultātu meklēšanā.html.

skati.py

# Importējiet nepieciešamos moduļus
no django.saīsnes importē renderēšanu, get_object_or_404
no .modeļi importē grāmatu, grāmatiņu
no django.db.modeļi importē Q
# Definējiet funkciju, lai parādītu visas grāmatas
def book_list (pieprasījums):
grāmata = grāmata.objektiem.visi ()
return render (pieprasījums, 'book_list.html ', ' book ': book)
# Definējiet funkciju, lai parādītu konkrēto grāmatu
def book_detail (pieprasījums, id):
book = get_object_or_404 (Book, id = id)
veidi = Grāmatas tips.objektiem.visi ()
t = veidi.get (id = grāmata.tips.id)
return render (pieprasījums, 'book_detail.html ', ' grāmata ': grāmata,' tips ': t.btype)
# Definējiet funkciju, lai meklētu grāmatu
def meklēšana (pieprasījums):
rezultāti = []
pēc pieprasījuma.metode == "IEGŪT":
vaicājums = pieprasījums.GŪT.iegūt ('meklēt')
ja vaicājums == ":
vaicājums = 'Neviens'
rezultāti = Grāmata.objektiem.filtrs (Q (grāmatas_nosaukums__satur = vaicājums) | Q (autora_nosaukums_sastāvs = vaicājums) | Q (cenas_konkurss = vaicājums))
atgriezt renderēšanu (pieprasījums, 'meklēšana.html ', ' vaicājums ': vaicājums,' rezultāti ': rezultāti)

Zvanu skata funkciju ceļu iestatīšana:

Mainīt URL.Django projekta py fails ar šādu skriptu. Skriptā ir noteikti četri ceļi. 'admin /' ceļš tiek izmantots, lai atvērtu Django administratīvo informācijas paneli. Tukšo ceļu (") izmanto, lai izsauktu funkciju book_list (). "/ 'ceļš tiek izmantots, lai izsauktu funkciju book_detail (). 'search /' path tiek izmantots, lai izsauktu funkciju search ().

URL.py

# Importēt administratora moduli
no django.ieguldījuma importēšanas administrators
# Importēšanas ceļa modulis
no django.URL importēšanas ceļš
# Importēšanas skats
no searchapp importēšanas skatiem
# Definējiet ceļus
urlpatterns = [
ceļš ('admin /', admin.vietne.URL),
ceļš (", viedokļi.book_list, name = 'book_list'),
ceļš ('/', skati.book_detail, name = 'book_detail'),
ceļš ('meklēt /', skati.meklēt, nosaukums = 'meklēt'),
]

Palaidiet lietotni no pārlūka:

Palaidiet šo komandu, lai palaistu Django serveri.

$ python3 pārvaldīt.py runervers

Palaidiet šo URL no jebkura pārlūka, lai tabulā parādītu grāmatu sarakstu.

http: // localhost: 8000

Ja lietotājs noklikšķina uz saites “PHP un MySQL dinamiskām vietnēm”, sīkāka informācija par šo grāmatu tiks parādīta pārlūkprogrammā.

Ja lietotājs pārlūkprogrammā meklē vārdu, fiziku, pārlūkprogrammā tiks parādīts šāds meklēšanas rezultāts.

Secinājums:

Šajā apmācībā, izmantojot datu bāzes tabulas, ir ieviesta Django lietotne ar pamata meklēšanas opciju. Jaunie Django izstrādātāji varēs ieviest meklēšanas funkciju savā vietnē pēc šīs apmācības izlasīšanas.

Labākās spēles, ko spēlēt ar rokas izsekošanu
Oculus Quest nesen iepazīstināja ar lielisku ideju par rokas izsekošanu bez kontrolieriem. Ar arvien lielāku spēļu un aktivitāšu skaitu, kas atbalsta ...
Kā parādīt OSD pārklājumu pilnekrāna Linux lietotnēs un spēlēs
Spēlējot pilnekrāna spēles vai lietojot lietotnes bez atrautības pilnekrāna režīmā, jūs varat izslēgt no attiecīgās sistēmas informācijas, kas redzama...
Top 5 spēļu tveršanas kartes
Mēs visi esam redzējuši un mīlējuši straumēšanas spēles pakalpojumā YouTube. PewDiePie, Jakesepticye un Markiplier ir tikai daži no labākajiem spēlētā...