Django

Ako vytvoriť základné vyhľadávanie pre web Django?

Ako vytvoriť základné vyhľadávanie pre web Django?

Konkrétny obsah ľubovoľnej stránky používatelia zvyčajne načítajú prostredníctvom vyhľadávania Google. Ak je však táto možnosť vyhľadávania implementovaná na webových stránkach, potom môžu používatelia ľahko nájsť požadovaný obsah na webe bez použitia vyhľadávania Google ... Ďalšou výhodou pridania možnosti vyhľadávania na web je, že vývojár dokáže správne riadiť výstup vyhľadávania. To znamená, že môže určiť, ktorý obsah stránok sa zobrazí alebo nie. Tento tutoriál ukáže postup implementácie základného vyhľadávania na stránke Django.

Predpoklady:

Pred precvičením scenára tohto tutoriálu musíte splniť nasledujúce úlohy:

  1. Nainštalujte si Django verzie 3+ na Ubuntu 20+ (najlepšie)
  2. Vytvorte projekt Django
  3. Spustením servera Django skontrolujte, či server funguje správne alebo nie.

Inštalácia aplikácie Django:

Spustením nasledujúceho príkazu vytvorte aplikáciu Django s názvom searchapp.

$ python3 spravovať.py startapp searchapp

Spustením nasledujúceho príkazu vytvorte používateľa pre prístup k databáze Django. Ak ste používateľa vytvorili už predtým, nemusíte spustiť príkaz.

$ python3 spravovať.py vytvorí superužívateľa

Pridajte názov aplikácie do časti nastavení v INSTALLED_APP.súbor py.

INSTALLED_APPS = [

'searchapp'
]

Vytvorte priečinok s názvom šablóny vo vnútri priečinka searchapp a v časti nastavení v časti TEMPLATES nastavte umiestnenie šablóny aplikácie.súbor py.

TEMPLATES = [

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

Vytvoriť modely:

Upravte modely.py súbor s nasledujúcim skriptom. Tu boli definované dve triedy, aby sa vytvorili dve relačné tabuľky s názvom knižné typy a knihy. Typové pole tabuľky kníh je cudzí kľúč, ktorý sa objaví z tabuľky typov kníh.

modely.py

# Importujte potrebné moduly
od djanga.db import modely
od djanga.adresy URL importujú opačne
# Vytvorte vzorový knižný typ gor
trieda Booktype (modely.Model):
btype = modely.CharField (max_length = 100, unique = True)
trieda Meta:
ordering = ('btype',)
# Vytvorte modelovú gor knihu
trieda Kniha (modely.Model):
book_name = modely.CharField (max_length = 150)
author_name = models.CharField (max_length = 150)
typ = modely.ForeignKey (Booktype, on_delete = models.KASKÁDA)
cena = modely.FloatField ()
publikácia = modely.CharField (max_length = 100)
trieda Meta:
ordering = ('book_name',)
def __str __ (ja):
vrátiť sa.meno_knihy
def get_url (self):
return reverse ('book_detail', args = [self.id])

Vytvorte šablóny pre vyhľadávanie:

Na vytvorenie funkcie vyhľadávania zobrazenej v tomto návode sú potrebné tri súbory HTML. Toto sú book_list.html, book_detail.html a hľadať.html. Zoznam_knih.html zobrazí všetky záznamy z tabuľky kníh. Book_detail.html zobrazí podrobnosti konkrétnej knihy. Hľadanie.html zobrazí výsledok vyhľadávania po zadaní vyhľadávacieho formulára.

book_list.html



Zoznam kníh










% if type% type.meno % else% Zoznam kníh % endif%











% pre x v knihe%

X.book_name


od x.meno_ autora


$ x.cena




% endfor%



book_detail.html





kniha.book_name






kniha.book_name




Autor: kniha.meno_ autora


Typ: type


Publikácia: kniha.publikácia


Cena: $ kniha.cena







Vyhľadávanie.html



Výsledok hľadania









% if query%


% s výsledkami.počítať ako total_results%
Nájdené výsledky: total_results total_results | pluralize
% endwith%


% za c vo výsledkoch%

c.book_name


c.meno_ autora


% prázdne%

Neboli nájdené žiadne výsledky.


% endfor%
% koniec Ak %






Vytvoriť funkcie zobrazenia:

Upravte zobrazenia.py súbor s nasledujúcim skriptom. V skripte boli definované tri funkcie. Funkcia book_list () zobrazí zoznam kníh.html súbor. Funkcia book_detail () zobrazí book_detail.html. Funkcia search () prehľadá záznamy na základe údajov zadaných vyhľadávacím formulárom a zobrazí výsledok do vyhľadávania.html.

názory.py

# Importujte potrebné moduly
od djanga.skratky importovať vykreslenie, get_object_or_404
od .modely importujú Knihu, Typ knihy
od djanga.db.modely importovať Q
# Definujte funkciu na zobrazenie všetkých kníh
def book_list (požiadavka):
kniha = Kniha.predmety.všetko ()
vrátiť vykreslenie (požiadavka, 'book_list.html ', ' book ': book)
# Definujte funkciu na zobrazenie konkrétnej knihy
def book_detail (požiadavka, id):
book = get_object_or_404 (Book, id = id)
typy = typ knihy.predmety.všetko ()
t = typy.dostať (id = kniha.typu.id)
vrátiť vykreslenie (požiadavka, 'book_detail.html ', ' kniha ': kniha,' typ ': t.btype)
# Definujte funkciu vyhľadávania knihy
def vyhľadávanie (požiadavka):
výsledky = []
na požiadanie.method == "ZÍSKAŤ":
dotaz = požiadavka.ZÍSKAJTE.get ('hľadať')
if query == ":
query = 'Žiadne'
výsledky = Rezervovať.predmety.filter (Q (book_name__icontains = dopyt) | Q (author_name__icontains = dopyt) | Q (price__icontains = dotaz))
vrátiť vykreslenie (požiadavka, 'hľadať.html ', ' dotaz ': dotaz,' výsledky ': výsledky)

Nastaviť cesty pre volanie funkcií zobrazenia:

Upravte adresy URL.py súbor projektu Django s nasledujúcim skriptom. V skripte boli definované štyri cesty. Cesta „admin /“ sa používa na otvorenie správneho panela Django. Prázdna cesta (") sa používa na volanie funkcie book_list (). „/ 'cesta sa používa na volanie funkcie book_detail (). Cesta „search /“ sa používa na volanie funkcie search ().

adresy URL.py

# Importovať modul správcu
od djanga.sk prispieť import
# Importovať modul cesty
od djanga.cesta importu adries URL
# Pohľad na import
zo zobrazení importu searchapp
# Definujte cesty
urlpatterns = [
cesta ('admin /', admin.stránky.adresy URL),
cesta (", pohľady.book_list, name = 'book_list'),
cesta („/“, zobrazenia.book_detail, name = 'book_detail'),
cesta („hľadať /“, zobrazenia.search, name = 'search'),
]

Spustite aplikáciu z prehliadača:

Spustením nasledujúceho príkazu spustíte server Django.

$ python3 spravovať.py runserver

V ľubovoľnom prehliadači spustite nasledujúcu adresu URL, aby sa zobrazil zoznam kníh z tabuľky.

http: // localhost: 8000

Ak používateľ klikne na odkaz „PHP a MySQL pre dynamické webové stránky“, potom sa v prehliadači zobrazia podrobnosti tejto knihy.

Ak používateľ vyhľadáva v prehliadači slovo, fyziku, potom sa v prehliadači zobrazí nasledujúci výsledok vyhľadávania.

Záver:

Aplikácia Django s možnosťou základného vyhľadávania bola v tomto výučbe implementovaná pomocou databázových tabuliek. Noví vývojári Django budú môcť po prečítaní tohto tutoriálu implementovať funkciu vyhľadávania na svojich webových stránkach.

Stredné tlačidlo myši nefunguje v systéme Windows 10
The stredné tlačidlo myši pomáha vám prechádzať dlhé webové stránky a obrazovky s množstvom údajov. Ak sa to zastaví, budete nakoniec používať klávesn...
Ako zmeniť ľavé a pravé tlačidlo myši na počítači so systémom Windows 10
Je úplnou normou, že všetky zariadenia počítačových myší sú ergonomicky navrhnuté pre pravákov. Existujú však dostupné myšacie zariadenia, ktoré sú šp...
Napodobňovanie kliknutí myšou vznášaním sa pomocou myši bez myši vo Windows 10
Používanie myši alebo klávesnice v nesprávnom postoji k nadmernému používaniu môže mať za následok veľa zdravotných problémov vrátane napätia, syndróm...