Priekšnoteikumi
Pirms praktizēt šīs apmācības piemērus, jums ir jāveic šādi uzdevumi:
- Instalējiet Django versiju 3+ Ubuntu 20+ (vēlams)
- Izveidojiet Django projektu
- Palaidiet Django serveri, lai pārbaudītu, vai serveris darbojas pareizi.
Iestatiet Django lietotni
A. Palaidiet šo komandu, lai izveidotu Django lietotni ar nosaukumu filterapp.
$ python3 pārvaldīt.py startapp filterappB. Palaidiet šo komandu, lai izveidotu lietotāju piekļuvei Django datu bāzei. Ja esat iepriekš izveidojis lietotāju, komanda nav jāpalaiž.
$ python3 pārvaldīt.py rada liellietotājuC. Pievienojiet lietotnes nosaukumu mapē INSTALLED_APP daļa no py failu.
INSTALLED_APPS = […
'filterapp'
]
D. Izveidojiet mapi ar nosaukumu veidnes iekšpusē filterapp mapi un iestatiet veidnes lietotnes atrašanās vieta Veidnes daļa no py failu.
PARAUGI = [… .
'DIRS': ['/ home / fahmida / django_pro / filterapp / templates'],
… .
,
]
Izveidojiet datu bāzes tabulas modeli
Atveriet modeļiem.py failu no filterapp mapi un pievienojiet šādu skriptu, lai definētu darbinieki tabulas. Darbinieks klase ir definēta, lai izveidotu tabulu ar nosaukumu darbinieki ar nosaukums, amats, e-pasts, nodaļa, un pievienošanās_datums lauki. Šeit, nosaukums, amats, un nodaļa laukos tiks saglabāti rakstzīmju dati, e-pasts laukā tiks saglabāta e-pasta adrese un pievienošanās_datums laukā tiks saglabāti datuma dati.
modeļiem.py
# Modeļu importēšanano django.db importēšanas modeļi
# Definējiet klasi, lai izveidotu darbinieku tabulu
klases darbinieks (modeļi.Modelis):
nosaukums = modeļi.CharField (maks. Garums = 50)
post = modeļi.CharField (maks. Garums = 40)
e-pasts = modeļi.EmailField ()
nodaļa = modeļi.CharField (maks. Garums = 30)
pievienošanās_datums = modeļi.DateField ()
Palaidiet makemigrācijas komandu, lai izveidotu jaunu migrāciju, pamatojoties uz modeļu veiktajām izmaiņām.
$ python3 pārvaldīt.py makemigrations filterappPalaidiet migrēt komandu izpildīt SQL komandas un izveidot visas tabulas datu bāzē, kas definētas modeļiem.py failu.
$ python3 pārvaldīt.py migrētMainīt programmas saturu admin.py failu ar šādu saturu. Šeit, darbinieks modeļu klase tiek reģistrēta, izmantojot reģistrs () metode, lai parādītu darbinieku uzskaite tabulas Django administrācijas informācijas panelī.
admin.py
# Importēt administratora modulino django.ieguldījuma importēšanas administrators
# Importēt darbinieku modeli
no .modeļi importē Darbinieks
# Reģistrējiet darbinieku modeli
admin.vietne.reģistrēties (darbinieks)
Palaidiet šo URL, lai atvērtu Django administratora pieteikšanās lapu. Norādiet derīgu lietotājvārdu un paroli, lai atvērtu Django administrācijas informācijas panelis lai piekļūtu datu bāzes tabulām.
Ievietojiet divus vai vairākus darbinieku ierakstus, lai datiem lietotu filtru. Šeit tiek ievietoti pieci ieraksti.
Izveidojiet Meklēt.html failu iekšpusē filterapp / templates / mapi ar šādu skriptu. Dati no darbinieks tabula tiks parādīta šajā veidnes failā. priekš cilpa tiek izmantota, lai lasītu objektu_ saraksts mainīgais, kas tiks nodots no skata faila. The nosaukums, amats, un nodaļa vērtības darbinieki tabula tiks parādīta, izmantojot sarakstu.
Meklēt.html
Django filtra apmācība
Darbinieku saraksts
emp.nosaukums (emp.izlikt)
emp.departaments departaments
% par emp_ objekta sarakstā%
% endfor%
Atveriet skati.py failu no filterapp mapi un modificējiet faila saturu ar šādu skriptu. Modeļa un veidnes nosaukumi ir definēti skriptā.
skati.py
# Importēt ListView modulino django.skati.vispārīgs importēšanas saraksts ListView
# Importēt darbinieku moduli
no .modeļi importē Darbinieks
# Importēt Q moduli
no django.db.modeļi importē Q
# Definējiet klasi datu filtrēšanai
klases SearchEmployee (ListView):
# Definējiet modeli
modelis = darbinieks
# Definēt veidni
template_name = 'meklēt.html '
Mainīt programmas saturu URL.py failu ar šādu saturu. Skriptā “meklētEmpir noteikts ceļš, lai izsauktu SearchEmployee.as_view () metode, kas nosūtīs visus datus un filtrētos datus darbinieki tabulas veidnes failā.
URL.py
# Importēt administratora modulino django.ieguldījuma importēšanas administrators
# Importēt ceļu un iekļaut moduli
no django.URL importēšanas ceļš, iekļaujiet
# Importēt SearchEmployee moduli
no filterapp.skati importē SearchEmployee
urlpatterns = [
# Definējiet administratora ceļu
ceļš ('admin /', admin.vietne.URL),
# Definējiet meklēšanas ceļu
ceļš ('searchEmp /', SearchEmployee.as_view ()),
]
Šī izeja parādīsies, nepiemērojot filtrēšanu šim URL.
http: // localhost: 8000 / SerachEmp
Filtrējiet datus, izmantojot vienkāršu filtrēšanu
Pievienojiet šādu rindu rindas beigās skati.py failu, lai filtrētu darbinieki tabula, kur vērtība pastu lauks ir 'Grāmatvede".
# Lietot pamata filtrēšanuqueryset = Darbinieks.objektiem.filtrs (post = 'Grāmatvedis')
Pēc pamata filtrēšanas izmantošanas parādīsies šāda izeja.
Filtrējiet datus ar vairākiem laukiem
Pievienojiet šādu rindu rindas beigās skati.py failu, lai filtrētu darbinieki tabula, kur vērtība nodaļa lauks ir 'HT' un e-pasts lauks ir “[e-pasts aizsargāts]”.
# Pielietojiet filtrēšanu ar vairākiem laukiemqueryset = Darbinieks.objektiem.filtrs (departaments = 'HR', e-pasts = '[e-pasts aizsargāts]')
Pēc vairāku filtru izmantošanas parādīsies šāda izeja.
Filtrējiet datus ar Q objektu
Pievienojiet šādu rindu rindas beigās skati.py failu, lai filtrētu darbinieki tabula, kur vērtība pastu lauks ir 'Vadītājsvai vērtība nodaļa lauks ir 'Pārdošana".
# Pielietojiet filtrēšanu, izmantojot Q objektusqueryset = Darbinieks.objektiem.filtrs (Q (post = 'Vadītājs') | Q (departaments = 'Pārdošana'))
Pēc Q objektu filtrēšanas izmantošanas parādīsies šāda izeja.
Filtrējiet datus, izmantojot filtru ķēdi
Pievienojiet šādu rindu rindas beigās skati.py failu, lai filtrētu darbinieki tabula, kur vērtība nodaļa Vispirms tiks pārbaudīts lauks, un, ja tas atgūs patiesu, tad lauka vērtība nosaukums lauks tiks pārbaudīts.
# Pielietojiet filtrēšanu, izmantojot ķēdiqueryset = Darbinieks.objektiem.filtrs (departaments = 'HR').filtrs (nosaukums = 'Mehrab Hossain')
Pēc filtru ķēdes izmantošanas parādīsies šāda izeja.
Secinājums
Datus var filtrēt Django daudzos veidos, pamatojoties uz lietojumprogrammas prasībām. Šajā apmācībā tika izskaidroti četri dažādi filtrēšanas veidi, lai izprastu Django filtrēšanas pamatus. Tās ir vienkārša filtrēšana, vairākkārtēja filtrēšana, filtrēšana ar Q objektu un filtru ķēde.