Előfeltételek
Az oktatóanyag példáinak 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
A. Futtassa a következő parancsot egy Django alkalmazás létrehozásához filterapp.
$ python3 kezelni.py startapp filterappB. 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ótC. Adja hozzá az alkalmazás nevét a INSTALLED_APP része a py fájl.
INSTALLED_APPS = […
„filterapp”
]
D. Hozzon létre egy nevű mappát sablonok benne filterapp mappát, és állítsa be a sablonok az alkalmazás helye a Sablonok része a py fájl.
Sablonok = [… .
'DIRS': ['/ home / fahmida / django_pro / filterapp / templates'],
… .
,
]
Hozzon létre egy modellt az adatbázis táblához
Nyissa meg a modellek.py fájl a filterapp mappát, és adja hozzá a következő parancsfájlt a struktúra meghatározásához alkalmazottak táblázatok. Munkavállaló osztály definiálva van egy tábla létrehozására alkalmazottak val vel név, posta, e-mail, osztály, és csatlakozási dátum mezők. Itt, név, posta, és osztály mezők karakteradatokat tárolnak, a email mező az e-mail címet és a csatlakozási dátum mező a dátum adatait tárolja.
modellek.py
# Modellek importálása moduldjangótól.db import modellek
# Definiálja az osztályt az alkalmazottak táblázatának létrehozásához
osztály alkalmazottja (modellek.Modell):
név = modellek.CharField (max_hossz = 50)
post = modellek.CharField (max_hossz = 40)
email = modellek.EmailField ()
osztály = modellek.CharField (max_hossz = 30)
csatlakozási dátum = modellek.DateField ()
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 filterappFuttassa 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, az alkalmazott a modellek osztályát a A regisztráció() módszer a alkalmazottak nyilvántartása 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
# Alkalmazott modell importálása
tól től .modellek importálják az alkalmazottat
# Regisztráljon alkalmazott modellt
admin.webhely.nyilvántartás (alkalmazott)
Futtassa a következő URL-t a Django rendszergazda bejelentkezési oldalának megnyitásához. Adja meg az érvényes felhasználónevet és jelszót a Django Administration Dashboard az adatbázis-táblák eléréséhez.
Helyezzen be két vagy több alkalmazotti rekordot a szűrő alkalmazásához. Itt öt rekord kerül beillesztésre.
Hozza létre a keresés.html fájl a filterapp / templates / mappát a következő szkript segítségével. Az adatok a munkavállaló táblázat jelenik meg ebben a sablonfájlban. mert ciklus segítségével olvasható le a object_list változó, amelyet a nézetfájl át fog adni. A név, posta, és osztály értékei alkalmazottak táblázat a lista használatával jelenik meg.
keresés.html
Django szűrő bemutató
Munkavállalói lista
emp.név (emp.post)
emp.osztály részleg
% az emp-hez az objektumlistában%
% endfor%
Nyissa meg a nézetek.py fájl a filterapp mappába, és módosítsa a fájl tartalmát a következő szkript segítségével. A modell és a sablon nevét a szkript határozza meg.
nézetek.py
# ListView modul importálásadjangótól.nézetek.általános importálás ListView
# Alkalmazott modul importálása
tól től .modellek importálják az alkalmazottat
# Q modul importálása
djangótól.db.modellek importálják Q-t
# Definiálja az adatok szűrésének osztályát
osztály SearchEmployee (ListView):
# Definiálja a modellt
modell = Alkalmazott
# Definiálja a sablont
template_name = 'keresés.html '
Módosítsa a URL-ek.py fájl a következő tartalommal. A szkriptben asearchEmp'elérési útja a SearchEmployee.as_view () metódus, amely elküldi az összes adatot és a alkalmazottak 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 útvonal, tartalmazza
# SearchEmployee modul importálása
a filterapp-ból.nézetek importálja a SearchEmployee-t
urlpatterns = [
# Adja meg az admin elérési útját
elérési út ('admin /', admin.webhely.URL-ek),
# Határozza meg a keresés útját
elérési út ('searchEmp /', SearchEmployee.as_view ()),
]
A következő kimenet anélkül jelenik meg, hogy bármilyen szűrést alkalmazna a következő URL-re.
http: // localhost: 8000 / SerachEmp
Az adatok szűrése egyszerű szűréssel
Adja hozzá a következő sort a nézetek.py fájl a alkalmazottak táblázat, ahol a post mezőKönyvelő".
# Alapszűrés alkalmazásaqueryset = Alkalmazott.tárgyakat.szűrő (post = 'könyvelő')
Az alapszűrés alkalmazása után a következő kimenet jelenik meg.
Adatok szűrése több mezővel
Adja hozzá a következő sort a nézetek.py fájl a alkalmazottak táblázat, ahol a osztály mezőHT"és az email mező az '[email protected]'.
# Szűrés alkalmazása több mezővelqueryset = Alkalmazott.tárgyakat.szűrő (osztály = 'HR', e-mail = '[e-mail védett]')
A következő kimenet több szűrés alkalmazása után jelenik meg.
Adatok szűrése Q-objektummal
Adja hozzá a következő sort a nézetek.py fájl a alkalmazottak táblázat, ahol a post mezőMenedzservagy a osztály mezőÉrtékesítés".
# Használjon szűrést Q objektumok használatávalqueryset = Alkalmazott.tárgyakat.szűrő (Q (post = 'Menedzser') | Q (osztály = 'Értékesítés'))
A következő kimenet jelenik meg a Q objektum szűrés alkalmazása után.
Az adatok szűrése a szűrőlánc használatával
Adja hozzá a következő sort a nézetek.py fájl a alkalmazottak táblázat, ahol a osztály mezőt először ellenőrizzük, és ha igaz értéket ad vissza, akkor a név mező be lesz jelölve.
# Láncolással alkalmazza a szűréstqueryset = Alkalmazott.tárgyakat.szűrő (osztály = 'HR').szűrő (név = 'Mehrab Hossain')
A következő kimenet jelenik meg a szűrőláncolás alkalmazása után.
Következtetés
Az adatok az alkalmazás követelményei alapján sokféleképpen szűrhetők Django-ban. A Django szűrés alapjainak megértése érdekében ebben az oktatóanyagban négyféle szűrési módszert ismertettek. Ezek egyszerű szűrés, többszörös szűrés, Q objektummal történő szűrés és szűrő láncolás.