Django

Hvordan bruke queryset i django

Hvordan bruke queryset i django
De fleste av webapplikasjonene er implementert med databasen nå. queryset brukes i Django-applikasjonen for å hente poster ved å filtrere eller kutte eller bestille databasetabellen uten å endre originaldataene. Modellen brukte Django til å lage tabellen i databasen. Så, kunnskapen om å bruke modellen i Django er nødvendig for å forstå bruken av queryset. Hovedfunksjonen til spørresettet er å iterere postene til databasetabeller ved å konvertere dem til SQL-spørringer. Den kan brukes fra python-kommandolinjen eller ved å skrive python-skriptet for å vise nettleserens utdata. Bruken av spørresett for å hente data fra en databasetabell på forskjellige måter er forklart i denne veiledningen.

Forutsetninger:

Før du trener på skriptet i denne opplæringen, må du fullføre følgende oppgaver.

  1. Installer Django versjon 3+ på Ubuntu 20+ (helst)
  2. Lag et Django-prosjekt
  3. Kjør Django-serveren for å kontrollere at serveren fungerer som den skal eller ikke.

Konfigurer en Django-app:

Kjør følgende kommando for å opprette en Django-app med navnet queryapp.

$ python3 administrere.py startapp queryapp

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 administrere.py skaperbruker

Legg til appnavnet i INSTALLERT_APP del av innstillinger.py fil.

INSTALLED_APPS = [
..
'queryapp'
]

Opprett en mappe med navnet maler inne i queryapp mappen og still inn malens plasseringen av appen i MALER del av innstillinger.py fil.

MALER = [

.. .
'DIRS': ['/ home / fahmida / django_pro / queryapp / templates'],
.. .
,
]

Lag en modell for databasetabellen:

Åpne modeller.py fil fra queryapp mappen og legg til følgende skript for å definere strukturen til Produkter bord. Produkt klasse er definert for å lage en tabell som heter Produkter med navn, type, merke, og pris Enger. Her, navn, type, og merke felt vil lagre karakterdata, og pris feltet vil lagre heltallsdataene.

modeller.py

# Importer modeller-modulen
fra django.db import modeller
# Definer klasse for å lage produkttabell
klasse Produkt (modeller.Modell):
navn = modeller.CharField (max_length = 100)
type = modeller.CharField (max_length = 30)
merkevare = modeller.CharField (max_length = 50)
pris = modeller.IntegerField ()

Kjør makemigrasjoner kommando for å opprette en ny migrering basert på endringene som er gjort av modellene.

$ python3 administrere.py makemigrations queryapp

Kjør migrere kommando for å utføre SQL-kommandoene og opprette alle tabeller i databasen som er definert i modeller.py fil.

$ python3 administrere.py migrere

Endre innholdet i admin.py fil med følgende innhold. Her, modellenes produktklassers registreres ved hjelp av registrere() metode for å vise Produkter tabeller i Django-administrasjons dashbordet.

admin.py

# Importer administrasjonsmodul
fra django.bidrag importadministrator
# Importer produktmodell
fra .modeller importerer produkt
# Registrer produktmodell
admin.nettstedet.registrer (Produkt)

Opprett en malfil med navnet produktliste.html inne i queryapp / maler / med følgende manus. Dette skriptet viser alle data fra Produkter tabell i tabellform med et søkefelt. Brukeren vil kunne søke i bestemte poster fra produkttabellen ved hjelp av søkeskjemaet. til loop brukes i skriptet for å gjenta dataene som sendes fra utsikt.py fil.

produktliste.html



<br>Django QuerySet-veiledning<br>



Søker etter produkt



% csrf_token%
Søk produkt:







% for produkt i objektliste%



% endfor%
IDNavnMerkePris
produkt.id produkt.Navn produkt.merkestyle = "text-align: right"> $ produkt.pris



Endre innholdet i utsikt.py filen med følgende skript. Modell- og malnavn er definert i Produktliste klasse. get_queryset () metode for klassen er definert i skriptet for å filtrere dataene basert på innholdet som sendes inn i søkefeltet i malen. Produkt.gjenstander.alle() metoden returnerer alle poster av Produkter bord. be om.FÅ.nøkler () metoden brukes i skriptet for å kontrollere at data sendes inn av søkeskjemaet. Hvis denne metoden returnerer ekte, og så be om.FÅ.få ('src') metoden brukes til å kontrollere at den innsendte verdien er tom eller ikke. Hvis denne metoden returnerer en ikke-tom verdi, blir verdien lagret i variabelen, nøkkelord, og den vil bli brukt til å filtrere dataene basert på merke og type felt fra Produkter bord.

utsikt.py

# Import ListView-modul
fra django.utsikt.generisk import ListView
# Importer produktmodul
fra .modeller importerer produkt
# Importer Q-modul
fra django.db.modeller importerer Q
# Definer klasse for spørringsdata
klasse Produktliste (ListView):
# Definer modell
modell = Produkt
# Definer mal
template_name = 'productList.html '
def get_queryset (selv):
# Angi standard spørresett
queryset = Produkt.gjenstander.alle()
# Kontroller at skjemaverdien er sendt inn eller ikke
hvis selv.be om.FÅ.nøkler ():
# Sjekk søkeordet
hvis selv.be om.FÅ.få ('src') != ":
nøkkelord = selvtillit.be om.FÅ.få ('src')
# Still spørringssett basert på søkeord
queryset = Produkt.gjenstander.filter (Q (merke = nøkkelord.kapitaliser ()) Q (type = nøkkelord.kapitaliser ()))
returner spørresett

Endre innholdet i nettadresser.py filen med følgende skript. I manuset er 'searchPro/ 'bane er definert for å kalle Produktliste.som_visning () metoden som vil sende alle data og de filtrerte dataene til Produkter tabellen til malfilen.

nettadresser.py

# Importer administrasjonsmodul
fra django.bidrag importadministrator
# Importer bane og inkluder modul
fra django.URL-adresse for import
# Importer søkemodulmodul
fra queryapp.visninger importerer ProductList
urlpatterns = [
# Definer banen for admin
sti ('admin /', admin.nettstedet.nettadresser),
# Definer stien til søkeprodukt
sti ('searchPro /', ProductList.as_view ()),

Legg til poster i tabellen:

Åpne Django-administrasjonssiden og legg til noen poster i Produkter tabellen for å bruke spørresettet på den gangen. Her er det satt inn fem poster.

Alle poster av produktene med søkeboksen vil vises i nettleseren etter å ha utført følgende URL.

http: // localhost: 8000 / searchPro


Alle sjampoproduktene vises hvis produkttypen, 'sjampovil bli søkt i søkefeltet.

Melkepulverproduktene fra den friske merke vises hvis produktmerket, 'ferskvil bli søkt i søkefeltet.

Konklusjon:

Måten å filtrere dataene i en enkel databasetabell ved hjelp av queryset er forklart i denne veiledningen. Dataene kan filtreres på forskjellige måter. Leserne vil forstå det å bruke et spørresett for å filtrere eller søke i data i nettleseren etter å ha lest denne opplæringen.

Mus Kartlegg museknappene på en annen måte for annen programvare med X-Mouse Button Control
Kartlegg museknappene på en annen måte for annen programvare med X-Mouse Button Control
Kanskje du trenger et verktøy som kan gjøre at musens kontroll endres med hvert program du bruker. Hvis dette er tilfelle, kan du prøve et program som...
Mus Microsoft Sculpt Touch Wireless Mouse Review
Microsoft Sculpt Touch Wireless Mouse Review
Jeg har nylig lest om Microsoft Sculpt Touch trådløs mus og bestemte meg for å kjøpe den. Etter å ha brukt den en stund bestemte jeg meg for å dele mi...
Mus AppyMouse Pekeplate og musepeker på skjermen for Windows-nettbrett
AppyMouse Pekeplate og musepeker på skjermen for Windows-nettbrett
Nettbrettbrukere savner ofte musepekeren, spesielt når de bruker vanlige bærbare datamaskiner. Berøringsskjermen Smarttelefoner og nettbrett har mange...