Django

Hogyan készítsünk alap keresést egy Django webhelyhez?

Hogyan készítsünk alap keresést egy Django webhelyhez?

Bármely webhely adott tartalmát a felhasználók általában a Google keresésen keresztül keresik le. Ha azonban ezt a keresési opciót megvalósítják a webhelyen, akkor a felhasználók könnyedén megtalálhatják a kívánt tartalmat a webhelyen anélkül, hogy a Google keresést használnák ... A keresési opció hozzáadása a webhelyhez egy másik előnye, hogy a fejlesztő megfelelően tudja kezelni a keresési kimenetet. Ez azt jelenti, hogy ellenőrizheti, hogy a webhely mely tartalma jelenik meg, vagy sem. Ez az oktatóanyag bemutatja az alapvető keresés végrehajtásának folyamatát a Django webhelyen.

Előfeltételek:

Az oktatóanyag szkriptjének gyakorlása előtt el kell végeznie a következő feladatokat:

  1. Telepítse a Django 3+ verziót az Ubuntu 20+ verzióra (lehetőleg)
  2. Hozzon létre egy Django projektet
  3. Futtassa a Django szervert annak ellenőrzésére, hogy a szerver megfelelően működik-e vagy sem.

Állítson be egy Django alkalmazást:

Futtassa a következő parancsot egy Django alkalmazás létrehozásához, amelynek neve searchapp.

$ python3 kezelni.py startapp searchapp

Futtassa a következő parancsot a felhasználó létrehozásához a Django adatbázis eléréséhez. Ha korábban létrehozta a felhasználót, akkor nem kell futtatnia a parancsot.

$ python3 kezelni.py létrehozza a túlfelhasználót

Adja hozzá az alkalmazás nevét a beállítások INSTALLED_APP részéhez.py fájl.

INSTALLED_APPS = [

'searchapp'
]

Hozzon létre egy sablon nevű mappát a searchapp mappában, és állítsa be az alkalmazás sablonjának helyét a beállítások SEMPLÁTUMOK részében.py fájl.

Sablonok = [

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

Modellek létrehozása:

Módosítsa a modelleket.py fájl a következő szkriptel. Itt két osztályt határoztak meg két relációs tábla létrehozására, könyvtípusok és könyvek néven. A könyvtábla típusmezője egy idegen kulcs, amely a könyvtípusok táblázatból jelenik meg.

modellek.py

# Importálja a szükséges modulokat
djangótól.db import modellek
djangótól.URL import fordított
# Hozzon létre modellt vagy könyvtípust
osztály Booktype (modellek.Modell):
btype = modellek.CharField (max_hossz = 100, egyedi = Igaz)
osztály Meta:
rendelés = ('btype',)
# Modellkönyv létrehozása
osztály Könyv (modellek.Modell):
könyvnév = modellek.CharField (max_hossz = 150)
szerző_név = modellek.CharField (max_hossz = 150)
típus = modellek.ForeignKey (Könyvtípus, on_delete = modellek.VÍZESÉS)
ár = modellek.FloatField ()
kiadvány = modellek.CharField (max_hossz = 100)
osztály Meta:
rendelés = ('könyvnév',)
def __str __ (self):
visszatérő én.könyvnév
def get_url (self):
return reverse ('könyv_részlet', args = [önmaga.id])

Sablonok létrehozása a kereséshez:

Három HTML fájlra van szükség az oktatóanyagban bemutatott keresési szolgáltatás létrehozásához. Ezek a book_list.html, book_detail.HTML és keresés.html. A könyv_lista.A html a könyvek táblázat összes rekordját megjeleníti. A könyv_részlet.A html egy adott könyv részleteit jeleníti meg. A keresés.A html a keresési űrlap elküldése után megjeleníti a keresési eredményt.

könyv_lista.html



Könyvlista










%, ha%% type.név % else% Könyvlista % endif%











% x-hez a% könyvben

x.könyvnév


írta: x.szerző_név


$ x.ár




% endfor%



könyv_részlet.html





könyv.könyvnév






könyv.könyvnév




Szerző: könyv.szerző_név


Típus: type


Kiadvány: könyv.kiadvány


Ár: $ könyv.ár







keresés.html



Keresési eredmény









% ha% lekérdezés


% eredménnyel.számít total_results%
Talált total_results találatot total_results | pluralize
% endwith%


% a c eredményhez%

c.könyvnév


c.szerző_név


% üres%

Nincs találat.


% endfor%
% endif%






Nézetfunkciók létrehozása:

Módosítsa a nézeteket.py fájl a következő szkriptel. Három függvényt határoztak meg a szkriptben. A book_list () függvény megjeleníti a book_list listát.html fájl. A book_detail () függvény megjeleníti a book_detail értéket.html. A search () függvény a keresési űrlap által beküldött adatok alapján megkeresi a rekordokat, és az eredményt megjeleníti a keresésben.html.

nézetek.py

# Importálja a szükséges modulokat
djangótól.parancsikonok import render, get_object_or_404
tól től .modellek importálják a Book, Booktype-t
djangótól.db.modellek importálják Q-t
# Define funkció az összes könyv megjelenítéséhez
def book_list (kérés):
könyv = Könyv.tárgyakat.minden()
return render (kérés, 'könyv_lista.html ', ' könyv ': könyv)
# Define funkció az adott könyv megjelenítéséhez
def book_detail (kérés, id):
book = get_object_or_404 (Book, id = id)
type = Könyvtípus.tárgyakat.minden()
t = típusok.get (id = könyv.típus.id)
return render (kérés, 'könyv_részlet.html ', ' könyv ': könyv,' típus ': t.btype)
# Definiálja a könyv keresésének funkcióját
def keresés (kérés):
eredmények = []
ha kérik.módszer == "GET":
lekérdezés = kérés.KAP.get ('keresés')
ha lekérdezés == ":
lekérdezés = 'Nincs'
eredmények = Könyv.tárgyakat.szűrő (Q (könyv_neve__ tartalmaz = lekérdezés) | Q (szerző_név _ tartalmaz) = lekérdezés) | Q (ár _ tartalmaz) = lekérdezés)
return render (kérés, 'keresés.html ', ' query ': query,' results ': results)

A hívásnézet funkciók elérési útinak beállítása:

Módosítsa az URL-eket.a Django projekt py fájlja a következő szkriptel. Négy utat határoztak meg a szkriptben. Az 'admin /' elérési út a Django adminisztratív irányítópult megnyitására szolgál. Az üres útvonal (") a book_list () függvény meghívására szolgál. "Az / 'elérési út a book_detail () függvény meghívására szolgál. A 'search /' elérési út a search () függvény meghívására szolgál.

URL-ek.py

# Adminisztrációs modul importálása
djangótól.közreműködés import admin
# Útvonal modul importálása
djangótól.URL importálási útvonal
# Import nézet
a searchapp import nézeteiből
# Definiálja az utakat
urlpatterns = [
elérési út ('admin /', admin.webhely.URL-ek),
elérési út (", nézetek.könyv_lista, név = 'könyv_lista'),
elérési út ('/', nézetek.könyv_részlet, név = 'könyv_részlet'),
elérési út ('keresés /', nézetek.keresés, név = 'keresés'),
]

Futtassa az alkalmazást a böngészőből:

A Django szerver futtatásához futtassa a következő parancsot.

$ python3 kezelni.py runerver

Futtassa a következő URL-t bármely böngészőből a könyvek listájának megjelenítéséhez a táblázatból.

http: // localhost: 8000

Ha a felhasználó a „PHP és MySQL for Dynamic Web Sites” linkre kattint, akkor a könyv részletei megjelennek a böngészőben.

Ha a felhasználó a fizika szóra keres a böngészőben, akkor a következő keresési eredmény jelenik meg a böngészőben.

Következtetés:

Az alap keresési opcióval rendelkező Django alkalmazást az oktatóanyag adatbázis-táblák használatával valósította meg. Az új Django fejlesztők a bemutató elolvasása után képesek lesznek bevezetni a keresési funkciót a weboldalukon.

Telepítse a legújabb OpenRA stratégiai játékot az Ubuntu Linux rendszerre
Az OpenRA egy ingyenes / ingyenes valós idejű stratégiai játékmotor, amely újjáépíti a korai Westwood játékokat, mint például a klasszikus Command & C...
Telepítse a legújabb Dolphin Emulator for Gamecube & Wii szoftvert Linuxra
A Dolphin Emulator segítségével a kiválasztott Gamecube & Wii játékokat játszhatja Linux személyi számítógépeken (PC). Mivel a Dolphin Emulator szaba...
A GameConqueror Cheat Engine használata Linux alatt
A cikk tartalmaz egy útmutatót a GameConqueror csaló motor Linux alatt történő használatáról. Sok olyan felhasználó, aki Windows-on játszik játékot, g...