Django

Kaip sukurti pagrindinę „Django“ svetainės paiešką?

Kaip sukurti pagrindinę „Django“ svetainės paiešką?

Tam tikrą bet kurios svetainės turinį vartotojai paprastai gauna naudodami „Google“ paiešką. Tačiau jei ši paieškos parinktis įgyvendinama svetainėje, tada vartotojai gali lengvai rasti norimą turinį svetainėje nenaudodami „Google“ paieškos ... Kitas paieškos parinkties pridėjimo svetainėje pranašumas yra tas, kad kūrėjas gali tinkamai valdyti paieškos išvestį. Tai reiškia, kad jis gali kontroliuoti, kuris svetainės turinys pasirodys, ar ne. Ši pamoka parodys pagrindinės paieškos diegimo „Django“ svetainėje procesą.

Būtinos sąlygos:

Prieš praktikuodami šios mokymo programos scenarijų, turite atlikti šias užduotis:

  1. Įdiekite „Django“ versiją 3+ „Ubuntu 20+“ (geriausia)
  2. Sukurkite „Django“ projektą
  3. Paleiskite „Django“ serverį ir patikrinkite, ar serveris veikia tinkamai.

Nustatykite „Django“ programą:

Norėdami sukurti „Django“ programą pavadinimu „searchapp“, vykdykite šią komandą.

$ python3 valdyti.py startapp searchapp

Vykdykite šią komandą, kad sukurtumėte vartotoją, kad pasiektumėte „Django“ duomenų bazę. Jei vartotoją sukūrėte anksčiau, komandos vykdyti nereikia.

$ python3 valdyti.py sukurianaudotojas

Pridėkite programos pavadinimą nustatymų dalyje INSTALLED_APP.py failą.

INSTALLED_APPS = [

„searchapp“
]

„Searchapp“ aplanke sukurkite aplanką su šablonais ir nustatykite programos šablono vietą nustatymų dalyje Šablonai.py failą.

Šablonai = [

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

Kurti modelius:

Modifikuoti modelius.py failas su tokiu scenarijumi. Čia buvo apibrėžtos dvi klasės, kad būtų sukurtos dvi reliacinės lentelės, pavadintos knygų tipais ir knygomis. Knygų lentelės tipo laukas yra užsienio raktas, kuris pasirodys iš knygų tipų lentelės.

modeliai.py

# Importuokite būtinus modulius
nuo django.db importavimo modeliai
nuo django.URL importas atvirkštinis
# Sukurkite „GOR“ knygų modelio modelį
klasės „Booktype“ (modeliai.Modelis):
btype = modeliai.„CharField“ (maks. Ilgis = 100, unikalus = tiesa)
klasė Meta:
užsakymas = ('btype',)
# Sukurkite pavyzdinę knygos knygą
klasės knyga (modeliai.Modelis):
knygos_pavadinimas = modeliai.„CharField“ (maks. Ilgis = 150)
autoriaus_pavadinimas = modeliai.„CharField“ (maks. Ilgis = 150)
tipas = modeliai.„ForeignKey“ („Booktype“, „on_delete“ = modeliai.KASKADĖ)
kaina = modeliai.„FloatField“ ()
publikacija = modeliai.„CharField“ (maks. Ilgis = 100)
klasė Meta:
užsakymas = ('knygos_pavadinimas',)
def __str __ (savęs):
grąžinti save.knygos_vardas
def get_url (savarankiškai):
grįžti atgal ('book_detail', args = [self.id])

Sukurkite šablonus paieškai:

Norint sukurti šioje pamokoje parodytą paieškos funkciją, reikia trijų HTML failų. Tai yra book_list.html, book_detail.HTML ir ieškokite.HTML. Book_list.html bus rodomi visi įrašai iš knygų lentelės. Knyga_detailas.HTML parodys išsamią konkrečios knygos informaciją. Paieška.Pateikę paieškos formą html parodys paieškos rezultatą.

book_list.HTML



Knygų sąrašas










% if type% type.vardas % else% Knygų sąrašas % endif%











% už x knygoje%

x.knygos_pavadinimas


pateikė x.autoriaus_vardas


$ x.kaina




% endfor%



book_detail.HTML





knyga.knygos_pavadinimas






knyga.knygos_pavadinimas




Autorius: knyga.autoriaus_vardas


Tipas: type


Leidinys: knyga.leidinys


Kaina: $ knyga.kaina







Paieška.HTML



Paieškos rezultatas









%, jei užklausa%


% su rezultatais.suskaičiuoti kaip viso_rezultatai%
Rastas total_results rezultatas total_results | pluralize
% endwith%


% už c rezultatuose%

c.knygos_pavadinimas


c.autoriaus_vardas


% tuščia %

Nieko nerasta.


% endfor%
% endif%






Sukurti rodinio funkcijas:

Keisti rodinius.py failas su tokiu scenarijumi. Scenarijuje buvo apibrėžtos trys funkcijos. Funkcija book_list () parodys book_list.HTML failas. Funkcija book_detail () parodys knygos_detail.HTML. Funkcija „search ()“ ieškos įrašų, remdamasi paieškos formos pateiktais duomenimis, ir rodys rezultatą paieškoje.HTML.

Peržiūrų.py

# Importuokite būtinus modulius
nuo django.nuorodos importuoti atvaizdavimą, get_object_or_404
nuo .modeliai importuoja knygą, knygą
nuo django.db.modeliai importuoja Q
# Apibrėžkite funkciją, kad būtų rodomos visos knygos
def book_list (užklausa):
knyga = knyga.objektai.visi ()
grąžinti pateikimą (užklausa, 'book_list.html ', ' knyga ': knyga)
# Apibrėžkite funkciją, kad būtų rodoma konkreti knyga
def book_detail (užklausa, id):
knyga = get_object_or_404 (knyga, id = id)
tipai = Knygos tipas.objektai.visi ()
t = tipai.gauti (id = knyga.tipo.id)
return render (užklausa, 'book_detail.html ', ' knyga ': knyga,' tipas ': t.btype)
# Apibrėžkite knygos paieškos funkciją
def paieška (užklausa):
rezultatai = []
jei prašoma.metodas == "GAUTI":
užklausa = užklausa.GAUTI.gauti ('ieškoti')
jei užklausa == ":
užklausa = 'Nėra'
rezultatai = knyga.objektai.filtras (Q (knygos_pavadinimas _komponentai = užklausa) | Q (autorius_pavadinimas _komponentas = užklausa) | Q (kaina_komponentas = užklausa))
grąžinti pateikimą (užklausa, 'paieška.html ', ' query ': užklausa,' results ': rezultatai)

Nustatykite skambučių peržiūros funkcijų kelius:

Pakeiskite URL.Django projekto py failas su tokiu scenarijumi. Scenarijuje buvo apibrėžti keturi keliai. 'admin /' kelias naudojamas atidaryti „Django“ administracinę informacijos suvestinę. Tuščias kelias (") naudojamas iškviesti funkciją book_list (). "/ 'kelias naudojamas iškviesti book_detail () funkciją. 'search /' kelias naudojamas paieškos () funkcijai iškviesti.

URL.py

# Importuoti administratoriaus modulį
nuo django.įnašo importo administratorius
# Importo kelio modulis
nuo django.URL importavimo kelias
# Importuoti rodinį
iš „searchapp“ importavimo rodinių
# Apibrėžkite kelius
urlpatterns = [
kelias ('admin /', admin.svetainėje.URL),
kelias (", peržiūros.knyga_vardas, vardas = 'knygu_listas'),
kelias ('/', peržiūros.knygos_detailas, vardas = 'knygos_samelis'),
kelias ('paieška /', peržiūros.paieška, vardas = 'ieškoti'),
]

Paleiskite programą iš naršyklės:

Paleiskite šią komandą, norėdami paleisti „Django“ serverį.

$ python3 valdyti.py runerver

Paleiskite šį URL iš bet kurios naršyklės, kad būtų rodomas knygų sąrašas iš lentelės.

http: // localhost: 8000

Jei vartotojas spustelės nuorodą „PHP ir MySQL dinaminėms svetainėms“, tada šios knygos informacija bus rodoma naršyklėje.

Jei vartotojas ieško žodžio, fizikos naršyklėje, naršyklėje bus rodomi šie paieškos rezultatai.

Išvada:

Šioje mokymo programoje, naudojant duomenų bazės lenteles, įdiegta „Django“ programa su pagrindine paieškos parinktimi. Naujieji „Django“ kūrėjai galės įdiegti paieškos funkciją savo svetainėje perskaitę šią pamoką.

„WinMouse“ leidžia tinkinti ir pagerinti pelės žymeklio judėjimą „Windows“ kompiuteryje
Jei norite pagerinti numatytąsias pelės žymiklio funkcijas, naudokite nemokamą programinę įrangą „WinMouse“. Tai prideda daugiau funkcijų, kurios padė...
Pelės kairiuoju pelės mygtuku mygtukas neveikia „Windows 10“
Jei naudojate specialią pelę su savo nešiojamuoju kompiuteriu arba staliniu kompiuteriu, tačiau neveikia pelės kairysis mygtukas dėl tam tikrų priežas...
Žymeklis peršoka arba juda atsitiktinai, kai rašote „Windows 10“
Jei pastebite, kad pelės žymeklis peršoka arba juda pats, automatiškai, atsitiktinai, kai vedate „Windows“ nešiojamąjį kompiuterį ar kompiuterį, kai k...