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:
- Instalējiet Django versiju 3+ Ubuntu 20+ (vēlams)
- Izveidojiet Django projektu
- 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 searchappPalaidiet š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ājuPievienojiet 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ļusno 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āmatas_sīkāka informācija.html
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
%, 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ļusno 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 (). "
URL.py
# Importēt administratora modulino 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 runerversPalaidiet š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.