Django

Jak vytvořit základní vyhledávání pro web Django?

Jak vytvořit základní vyhledávání pro web Django?

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:

  1. Nainstalujte Django verze 3+ na Ubuntu 20+ (nejlépe)
  2. Vytvořte projekt Django
  3. 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 searchapp

Spuš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živatele

Př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é moduly
od 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



Seznam knih










% if type% type.name % else% Seznam knih % endif%











% za x v knize%

X.název_knihy


autor: x.autor_name


$ x.cena




% endfor%



book_detail.html





rezervovat.název_knihy






rezervovat.název_knihy




Autor: kniha.autor_name


Typ: type


Publikace: kniha.vydání


Cena: $ kniha.cena







Vyhledávání.html



Výsledek hledání









% 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é moduly
od 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 (). ''/ 'cesta se používá k volání funkce book_detail (). Cesta 'search /' se používá k volání funkce search ().

adresy URL.py

# Importovat modul správce
od 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 runserver

Spusť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.

WinMouse vám umožňuje přizpůsobit a vylepšit pohyb ukazatele myši na PC s Windows
Chcete-li vylepšit výchozí funkce ukazatele myši, použijte freeware WinMouse. Přidává další funkce, které vám pomohou vytěžit ze své skromné ​​myši ma...
V systému Windows 10 nefunguje levé tlačítko myši
Pokud používáte speciální myš s notebookem nebo stolním počítačem, ale levé tlačítko myši nefunguje ve Windows 10/8/7 z nějakého důvodu uvádíme několi...
Kurzor při psaní v systému Windows 10 skáče nebo se pohybuje náhodně
Pokud zjistíte, že kurzor myši skáče nebo se pohybuje sám, automaticky, náhodně při psaní v notebooku nebo počítači se systémem Windows, pak vám někte...