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:
- Telepítse a Django 3+ verziót az Ubuntu 20+ verzióra (lehetőleg)
- Hozzon létre egy Django projektet
- 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 searchappFuttassa 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ótAdja 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 modulokatdjangó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önyv_részlet.html
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
% 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 modulokatdjangó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. "
URL-ek.py
# Adminisztrációs modul importálásadjangó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 runerverFuttassa 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.