Forutsetninger
Før du øver på eksemplene på denne opplæringen, må du fullføre følgende oppgaver:
Sett opp en Django -app
EN. Kjør følgende kommando for å opprette en Django -app som heter FilterApp.
$ Python3 Administrer.py startapp filterappB. Kjør følgende kommando for å opprette brukeren for tilgang til Django -databasen. Hvis du har opprettet brukeren før, trenger du ikke kjøre kommandoen.
$ Python3 Administrer.Py CreateSuperuserC. Legg til appnavnet i Installert_app del av py fil.
Installert_apps = [D. Opprett en mappe som heter Maler inne i FilterApp mappe og angi malens Plasseringen av appen i Maler del av py fil.
Maler = [Lag en modell for databasetabellen
Åpne modeller.py fil fra FilterApp mappe og legg til følgende skript for å definere strukturen til ansatte bord. Ansatt Klasse er definert for å lage en tabell som heter ansatte med Navn, innlegg, e -post, avdeling, og bli med_date Enger. Her, Navn, innlegg, og avdeling Felt vil lagre karakterdata, e -post Feltet vil lagre e -postadressen og bli med_date Feltet vil lagre datadata.
modeller.py
# Importer modeller modulKjør Makemigrasjoner Kommando for å lage en ny migrasjon basert på endringene som er gjort av modellene.
$ Python3 Administrer.py makemigrations filterappKjør migrere Kommando for å utføre SQL -kommandoene og opprette alle tabeller i databasen som er definert i modeller.py fil.
$ Python3 Administrer.py migrererEndre innholdet i admin.py fil med følgende innhold. Her, den ansatte klasse av modellene er registrert ved hjelp av registeret () metode for å vise Registreringer av ansatte Tabeller i Django Administration Dashboard.
admin.py
# Importer administratormodulKjør følgende URL for å åpne Django Admin -påloggingssiden. Oppgi gyldig brukernavn og passord for å åpne Django Administration Dashboard For å få tilgang til databasetabellene.
Sett inn to eller flere ansattes poster for å bruke filteret på dataene. Her settes fem poster.
Opprett Søk.html fil inne i filterapp/maler/ mappe med følgende skript. Dataene fra ansatt Tabellen vises i denne malfilen. til Loop brukes til å lese innholdet i objekt_list variabel som vil bli sendt fra visningsfilen. De Navn, innlegg, og avdeling verdier av ansatte Tabellen vises ved å bruke listen.
Søk.html
emp.Navn (emp.post )
emp.avdeling avdeling
Åpne utsikt.py fil fra FilterApp mappe og endre innholdet i filen med følgende skript. Modell- og malnavn er definert i skriptet.
utsikt.py
# Import ListView -modulenEndre innholdet i URLS.py fil med følgende innhold. I manuset, 'Searchemp'Sti er definert for å ringe SearchEmployee.as_view () metode som vil sende alle data og filtrerte data fra ansatte Tabell til malfilen.
URLS.py
# Importer administratormodulFølgende utgang vises uten å bruke noe filtrering for følgende URL.
http: // localhost: 8000/serachemp
Filtredata ved enkel filtrering
Legg til følgende linje på slutten av utsikt.py fil for å filtrere postene til ansatte tabell der verdien av post felt er 'Regnskapsfører'.
# Bruk grunnleggende filtreringFølgende utgang vises etter påføring av grunnleggende filtrering.
Filtredata med flere felt
Legg til følgende linje på slutten av utsikt.py fil for å filtrere postene til ansatte tabell der verdien av avdeling felt er 'Ht'Og eposten felt er '[email protected] '.
# Bruk filtrering med flere feltFølgende utgang vises etter å ha påført flere filtrering.
Filtredata med Q -objekt
Legg til følgende linje på slutten av utsikt.py fil for å filtrere postene til ansatte tabell der verdien av post felt er 'sjef'Eller verdien av avdeling felt er 'Salg'.
# Bruk filtrering ved å bruke Q -objekterFølgende utgang vises etter påføring av q -objektfiltrering.
Filterdata ved å bruke filterkjeding
Legg til følgende linje på slutten av utsikt.py fil for å filtrere postene til ansatte tabell der verdien av avdeling feltet vil bli sjekket først, og hvis det kommer tilbake, så er verdien av Navn feltet vil bli sjekket.
# Bruk filtrering ved kjettingFølgende utgang vises etter påføring av filterkjeding.
Konklusjon
Dataene kan filtreres i Django på mange måter basert på søknadskravene. Fire forskjellige måter å filtrere ble forklart i denne opplæringen for å forstå det grunnleggende om Django -filtrering. Dette er enkel filtrering, flere filtrering, filtrering med Q -objekt og filterkjeding.