Konkrétní obsah libovolného webu uživatelé obvykle načítají pomocí vyhledávání Google. Pokud je však tato možnost vyhledávání implementována na webu, mohou uživatelé snadno najít požadovaný obsah na webu bez použití vyhledávání Google ... Další výhodou přidání možnosti vyhledávání na web je, že vývojář může správně spravovat výstup vyhledávání. To znamená, že může určit, který obsah webu se zobrazí nebo ne. Tento výukový program ukáže proces implementace základního vyhledávání na webu Django.
Předpoklady:
Před procvičením skriptu tohoto tutoriálu musíte dokončit následující úkoly:
- Nainstalujte Django verze 3+ na Ubuntu 20+ (nejlépe)
- Vytvořte projekt Django
- Spusťte server Django a zkontrolujte, zda server funguje správně nebo ne.
Nastavení aplikace Django:
Spuštěním následujícího příkazu vytvořte aplikaci Django s názvem searchapp.
$ python3 spravovat.py startapp searchappSpuštěním následujícího příkazu vytvořte uživatele pro přístup k databázi Django. Pokud jste uživatele vytvořili dříve, nemusíte tento příkaz spouštět.
$ python3 spravovat.py vytvoří superuživatelePřidejte název aplikace do INSTALLED_APP části nastavení.py soubor.
INSTALLED_APPS = […
'searchapp'
]
Vytvořte složku s názvem šablony uvnitř složky searchapp a nastavte umístění šablony aplikace v části TEMPLATES nastavení.py soubor.
TEMPLATES = [… .
'DIRS': ['/ home / fahmida / django_pro / searchapp / templates'],
… .
,
]
Vytvořit modely:
Upravte modely.py soubor s následujícím skriptem. Zde byly definovány dvě třídy pro vytvoření dvou relačních tabulek s názvem booktypes a books. Typové pole tabulky knih je cizí klíč, který se objeví z tabulky typů knih.
modely.py
# Importujte potřebné modulyod djanga.db modely importu
od djanga.import adres URL obráceně
# Vytvořte model gor booktype
třída Booktype (modely.Modelka):
btype = modely.CharField (max_length = 100, unique = True)
třída Meta:
ordering = ('btype',)
# Vytvořte modelovou gor knihu
třída Kniha (modely.Modelka):
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 ()
publikace = modely.CharField (max_length = 100)
třída Meta:
ordering = ('book_name',)
def __str __ (já):
vrátit se.název_knihy
def get_url (self):
návrat zpět ('book_detail', args = [self.id])
Vytváření šablon pro vyhledávání:
K vytvoření funkce vyhledávání zobrazené v tomto kurzu jsou nutné tři soubory HTML. Jedná se o book_list.html, book_detail.html a hledat.html. Seznam knih.html zobrazí všechny záznamy z tabulky knih. Book_detail.html zobrazí podrobnosti konkrétní knihy. Výzkum.html zobrazí výsledek hledání po odeslání vyhledávacího formuláře.
book_list.html
book_detail.html
rezervovat.název_knihy
Autor: kniha.autor_name
Typ: type
Publikace: kniha.vydání
Cena: $ kniha.cena
Vyhledávání.html
% pokud dotaz%
% s výsledky.počítat jako total_results%
Nalezeno total_results výsledek total_results | pluralize
% Konec s %
% za c ve výsledcích%
C.název_knihy
C.autor_name
% prázdný%
Nebyly nalezeny žádné výsledky.
% endfor%
% endif%
Vytvořit funkce zobrazení:
Upravte pohledy.py soubor s následujícím skriptem. Ve skriptu byly definovány tři funkce. Funkce book_list () zobrazí seznam book_list.html soubor. Funkce book_detail () zobrazí book_detail.html. Funkce search () prohledá záznamy na základě údajů odeslaných vyhledávacím formulářem a zobrazí výsledek do vyhledávání.html.
pohledy.py
# Importujte potřebné modulyod djanga.zkratky importovat vykreslení, get_object_or_404
z .modely importují Book, Booktype
od djanga.db.import modelů Q
# Definujte funkci pro zobrazení všech knih
def book_list (požadavek):
kniha = Kniha.předměty.Všechno()
vrátit vykreslení (požadavek, 'book_list.html ', ' book ': book)
# Definujte funkci pro zobrazení konkrétní knihy
def book_detail (požadavek, id):
book = get_object_or_404 (Book, id = id)
typy = Booktype.předměty.Všechno()
t = typy.dostat (id = kniha.typ.id)
vrátit vykreslení (požadavek, 'book_detail.html ', ' book ': book,' type ': t.btype)
# Definujte funkci pro vyhledání knihy
def vyhledávání (požadavek):
výsledky = []
na žádost.method == "ZÍSKAT":
dotaz = požadavek.DOSTAT.get ('hledat')
if query == ":
query = 'Žádný'
výsledky = rezervovat.předměty.filtr (Q (book_name__icontains = dotaz) | Q (author_name__icontains = dotaz) | Q (price__icontains = dotaz))
vrátit vykreslení (požadavek, 'hledat.html ', ' query ': query,' results ': results)
Nastavit cesty k zobrazení funkcí volání:
Upravte adresy URL.py soubor projektu Django s následujícím skriptem. Ve skriptu byly definovány čtyři cesty. Cesta 'admin /' se používá k otevření Django Administrative Dashboard. Prázdná cesta (") se používá k volání funkce book_list (). ''
adresy URL.py
# Importovat modul správceod djanga.contrib import admin
# Importovat modul cesty
od djanga.cesta pro import adres URL
# Importovat pohled
ze zobrazení importu searchapp
# Definujte cesty
urlpatterns = [
cesta ('admin /', admin.stránky.adresy URL),
cesta (", zobrazení.book_list, name = 'book_list'),
cesta ('/', pohledy.book_detail, name = 'book_detail'),
cesta ('hledat /', pohledy.search, name = 'search'),
]
Spusťte aplikaci z prohlížeče:
Spuštěním následujícího příkazu spusťte server Django.
$ python3 spravovat.py runserverSpusťte následující adresu URL z libovolného prohlížeče a zobrazte seznam knih z tabulky.
http: // localhost: 8000
Pokud uživatel klikne na odkaz „PHP a MySQL pro dynamické webové stránky“, zobrazí se v prohlížeči podrobnosti této knihy.
Pokud uživatel prohledá slovo, fyziku v prohlížeči, zobrazí se v prohlížeči následující výsledek hledání.
Závěr:
V tomto kurzu byla implementována aplikace Django s možností základního vyhledávání pomocí databázových tabulek. Noví vývojáři Django budou moci po přečtení tohoto tutoriálu implementovat funkci vyhledávání na svých webových stránkách.