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 queryapp.
$ python3 kezelni.py startapp queryappFuttassa 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 INSTALLED_APP része a beállítások.py fájl.
INSTALLED_APPS = […
'queryapp'
]
Hozzon létre egy nevű mappát sablonok benne queryapp mappát, és állítsa be a sablonok az alkalmazás helye a Sablonok része a beállítások.py fájl.
Sablonok = [… .
'DIRS': ['/ home / fahmida / django_pro / queryapp / templates'],
… .
,
]
Hozzon létre egy modellt az adatbázis-táblához:
Nyissa meg a modellek.py fájl a queryapp mappát, és adja hozzá a következő parancsfájlt a struktúra meghatározásához Termékek táblázatok. Termék osztály definiálva van egy tábla létrehozására Termékek val vel név, típus, márka, és ár mezők. Itt, név, típus, és márka mezők karakteradatokat tárolnak, és a ár mező az egész adatokat tárolja.
modellek.py
# Modellek importálása moduldjangótól.db import modellek
# Definiálja az osztályt a termékek létrehozásához
osztály Termék (modellek.Modell):
név = modellek.CharField (max_hossz = 100)
típus = modellek.CharField (max_hossz = 30)
márka = modellek.CharField (max_hossz = 50)
ár = modellek.IntegerField ()
Futtassa a makemigrációk parancsot egy új migráció létrehozására a modellek által végrehajtott változtatások alapján.
$ python3 kezelni.py makemigrations queryappFuttassa a vándorol parancs az SQL parancsok végrehajtására és az adatbázisban az modellek.py fájl.
$ python3 kezelni.py vándorolnakMódosítsa a admin.py fájl a következő tartalommal. Itt, a modellek termékosztályas regisztrálása a Regisztráció() módszer a Termékek táblázatok a Django adminisztráció irányítópultján.
admin.py
# Adminisztrációs modul importálásadjangótól.közreműködés import admin
# Termékmodell importálása
tól től .modellek importálják a terméket
# Regisztrálja a termék modelljét
admin.webhely.regisztráció (termék)
Hozzon létre egy sablonfájlt terméklista.html benne queryapp / templates / a következő forgatókönyvvel. Ez a szkript megjeleníti a Termékek táblázat táblázatos formában, keresőmezővel. A felhasználó a keresési űrlap segítségével megkeresheti az adott rekordokat a terméktáblázatból. mert a ciklus a szkriptben a nézetek.py fájl.
terméklista.html
Django QuerySet bemutató
Termék keresése
ID | Név | Márka | Ár |
---|---|---|---|
termék.id | termék.név | termék.márka | style = "text-align: right"> $ termék.ár |
Módosítsa a nézetek.py a következő szkriptet tartalmazó fájl. A modell és a sablon nevét a Terméklista osztály. get_queryset () Az osztály metódusát a szkript definiálja az adatok szűrésére a sablon keresőmezője által beküldött tartalom alapján. Termék.tárgyakat.minden() metódus visszaadja a Termékek asztal. kérés.KAP.kulcsok() metódust használnak a szkriptben annak ellenőrzésére, hogy a keresési űrlap elküldi-e az adatokat. Ha ez a módszer visszatér igaz, aztán a kérés.KAP.get ('src') módszerrel ellenőrizzük, hogy a beküldött érték üres vagy sem. Ha ez a módszer nem üres értéket ad vissza, akkor az értéket a változó tárolja, kulcsszó, és az adatok alapján lesz szűrve a márka és típus mezők a Termékek asztal.
nézetek.py
# ListView modul importálásadjangótól.nézetek.általános importálás ListView
# Import termék modul
tól től .modellek importálják a terméket
# Q modul importálása
djangótól.db.modellek importálják Q-t
# Definiálja az osztályt az adatok lekérdezéséhez
osztály ProductList (ListView):
# Definiálja a modellt
modell = Termék
# Definiálja a sablont
template_name = 'productList.html '
def get_queryset (self):
# Állítsa be az alapértelmezett lekérdezési készletet
lekérdezés = Termék.tárgyakat.minden()
# Ellenőrizze, hogy az űrlap értéke beküldött-e vagy sem
ha önmaga.kérés.KAP.kulcsok():
# Ellenőrizze a keresési kulcsszót
ha önmaga.kérés.KAP.get ('src') != ":
kulcsszó = én.kérés.KAP.get ('src')
# Állítsa be a lekérdezéskészletet a keresési kulcsszó alapján
lekérdezés = Termék.tárgyakat.szűrő (Q (márka = kulcsszó.nagybetűs ()) | Q (típus = kulcsszó.nagybetűs ()))
visszatérési lekérdezés
Módosítsa a URL-ek.py a következő szkriptet tartalmazó fájl. A szkriptben asearchProA / 'elérési út definiálva van a Terméklista.as_view () metódus, amely elküldi az összes adatot és a Termékek táblázatot a sablonfájlba.
URL-ek.py
# Adminisztrációs modul importálásadjangótól.közreműködés import admin
# Útvonal importálása és modul hozzáadása
djangótól.URL importálási útvonal
# SearchEmployee modul importálása
from queryapp.nézetek importálja a ProductList-et
urlpatterns = [
# Adja meg az admin elérési útját
elérési út ('admin /', admin.webhely.URL-ek),
# Határozza meg a termék keresési útvonalát
elérési út ('searchPro /', ProductList.as_view ()),
Rekordok hozzáadása a táblához:
Nyissa meg a Django Administration oldalt, és adjon hozzá néhány rekordot a Termékek táblázat a queryset alkalmazására. Itt öt rekordot illesztettek be.
A keresőmezővel ellátott termékek összes rekordja a következő URL végrehajtása után megjelenik a böngészőben.
http: // localhost: 8000 / searchPro
Az összes megjelenített sampon termék, ha a termék típusa "sampon'keresésre kerül a keresőmezőben.
A a Friss márka jelenik meg, ha a termék márka, ”friss'keresésre kerül a keresőmezőben.
Következtetés:
Az oktatóanyag elmagyarázza, hogyan lehet egy egyszerű adatbázis-tábla adatait szűrni a lekérdezés használatával. Az adatok különböző módon szűrhetők. Az oktatók elolvasása után az olvasók megértik a lekérdezés használatát az adatok szűrésére vagy keresésére a böngészőben.