Django

Sådan bruges queryset i django

Sådan bruges queryset i django
De fleste af webapplikationerne implementeres i databasen nu. queryset bruges i Django-applikationen til at hente poster ved filtrering eller udskæring eller bestilling af databasetabellen uden at ændre de originale data. Modellen brugte Django til at oprette tabellen i databasen. Så viden om at bruge modellen i Django er nødvendig for at forstå brugen af ​​queryset. Forespørgselss hovedfunktion er at gentage optegnelserne i databasetabeller ved at konvertere dem til SQL-forespørgsler. Det kan bruges fra python-kommandolinjen eller ved at skrive python-scriptet for at vise browserens output. Brugen af ​​queryset til at hente data fra en databasetabel på forskellige måder er blevet forklaret i denne vejledning.

Forudsætninger:

Før du træner scriptet til denne vejledning, skal du udføre følgende opgaver.

  1. Installer Django version 3+ på Ubuntu 20+ (helst)
  2. Opret et Django-projekt
  3. Kør Django-serveren for at kontrollere, at serveren fungerer korrekt eller ej.

Konfigurer en Django-app:

Kør følgende kommando for at oprette en Django-app med navnet queryapp.

$ python3 administrere.py startapp queryapp

Kør følgende kommando for at oprette brugeren til adgang til Django-databasen. Hvis du har oprettet brugeren før, behøver du ikke køre kommandoen.

$ python3 administrere.py skaberbruger

Tilføj appnavnet i INSTALLERET_APP en del af indstillinger.py fil.

INSTALLED_APPS = [
..
'queryapp'
]

Opret en mappe med navnet skabeloner inde i queryapp mappe og indstil skabeloner placering af appen i MALLER en del af indstillinger.py fil.

MALLER = [

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

Opret en model til databasetabellen:

Åbn modeller.py fil fra queryapp mappen og tilføj følgende script for at definere strukturen af Produkter tabeller. Produkt klasse er defineret til at oprette en tabel med navnet Produkter med navn, type, brand, og pris felter. Her, navn, type, og mærke felter gemmer karakterdata og pris felt gemmer heltalsdataene.

modeller.py

# Importmodulmodul
fra django.db import modeller
# Definer klasse for at oprette produkttabel
klasse Produkt (modeller.Model):
navn = modeller.CharField (max_length = 100)
type = modeller.CharField (max_length = 30)
brand = modeller.CharField (max_length = 50)
pris = modeller.IntegerField ()

Kør makemigrationer kommando til at oprette en ny migration baseret på ændringer foretaget af modellerne.

$ python3 administrere.py makemigrations queryapp

Kør migrere kommando til at udføre SQL-kommandoer og oprette alle tabeller i databasen, der er defineret i modeller.py fil.

$ python3 administrere.py migrere

Rediger indholdet af admin.py fil med følgende indhold. Her, modellernes produktklassers registreres ved hjælp af Tilmeld() metode til at vise Produkter tabeller i Django-administrationens dashboard.

admin.py

# Importér admin-modul
fra django.import importadministrator
# Importer produktmodel
fra .modeller importerer produkt
# Registrer produktmodel
admin.websted.register (Produkt)

Opret en skabelonfil med navnet produktliste.html inde i queryapp / skabeloner / med følgende script. Dette script viser alle data fra Produkter tabel i tabelform med et søgefelt. Brugeren vil være i stand til at søge i de bestemte poster fra produkttabellen ved hjælp af søgeformularen. til loop bruges i scriptet til at gentage de data, der er sendt fra synspunkter.py fil.

productList.html



<br>Django QuerySet-vejledning<br>



Søgning efter produkt



% csrf_token%
Søg produkt:







% for produkt i objekt_liste%



% endfor%
IDNavnMærkePris
produkt.id produkt.navn produkt.brandstyle = "text-align: right"> $ produkt.pris



Rediger indholdet af synspunkter.py fil med følgende script. Model- og skabelonnavne er defineret i Produktliste klasse. get_queryset () metode til klassen er defineret i scriptet for at filtrere dataene baseret på det indhold, der indsendes af søgefeltet i skabelonen. Produkt.genstande.alle() metoden returnerer alle poster af Produkter bord. anmodning.FÅ.nøgler () metode bruges i scriptet til at kontrollere, om data indsendes af søgeformularen. Hvis denne metode vender tilbage rigtigt, derefter anmodning.FÅ.få ('src') metoden bruges til at kontrollere den indsendte værdi er tom eller ej. Hvis denne metode returnerer en ikke-tom værdi, gemmes værdien i variablen, nøgleord, og det vil blive brugt til at filtrere data baseret på mærke og type felter fra Produkter bord.

synspunkter.py

# Import ListView-modul
fra django.synspunkter.generisk import ListView
# Importer produktmodul
fra .modeller importerer produkt
# Importer Q-modul
fra django.db.modeller importerer Q
# Definer klasse til forespørgselsdata
klasse ProductList (ListView):
# Definer model
model = Produkt
# Definer skabelon
template_name = 'productList.html '
def get_queryset (selv):
# Indstil standardforespørgselssættet
queryset = Produkt.genstande.alle()
# Kontroller, at formularværdien er indsendt eller ej
hvis selv.anmodning.FÅ.nøgler ():
# Kontroller søgeordet
hvis selv.anmodning.FÅ.få ('src') != ":
nøgleord = selv.anmodning.FÅ.få ('src')
# Indstil forespørgselssættet baseret på søgeord
queryset = Produkt.genstande.filter (Q (mærke = nøgleord.kapitaliser ()) Q (type = nøgleord.kapitaliser ())
returner forespørgselssæt

Rediger indholdet af webadresser.py fil med følgende script. I manuskriptet står 'searchPro/ 'sti er defineret til at kalde Produktliste.som_visning () metode, der sender alle data og de filtrerede data fra Produkter tabel til skabelonfilen.

webadresser.py

# Importér admin-modul
fra django.import importadministrator
# Importer sti og inkluder modul
fra django.webadresser til import af sti
# Importer søgemodulmodul
fra queryapp.visninger importerer ProductList
urlmønstre = [
# Definer stien til admin
sti ('admin /', admin.websted.webadresser),
# Definer stien til søgeprodukt
sti ('searchPro /', ProductList.som_visning ()),

Tilføj poster i tabellen:

Åbn siden Django Administration, og tilføj nogle poster til Produkter tabel for at anvende forespørgselssættet på det tidspunkt. Her er fem poster indsat.

Alle registreringer af produkterne med søgefeltet vises i browseren efter udførelse af følgende URL.

http: // localhost: 8000 / searchPro


Alle shampooprodukter, der vises, hvis produkttypen, 'shampoovil blive søgt i søgefeltet.

Mælkepulverprodukterne fra den friske mærke vises, hvis produktmærket, 'friskvil blive søgt i søgefeltet.

Konklusion:

Måden at filtrere dataene i en simpel databasetabel ved hjælp af queryset er forklaret i denne vejledning. Dataene kan filtreres på forskellige måder. Læserne forstår at bruge et forespørgsel til at filtrere eller søge i data i browseren efter at have læst denne vejledning.

Top Oculus App Lab-spil
Hvis du er Oculus-headset-ejer, skal du være opmærksom på sideloading. Sideladning er processen med at installere ikke-butiksindhold på dit headset. S...
Top 10 spil at spille på Ubuntu
Windows-platform har været en af ​​de dominerende platforme til spil på grund af den enorme procentdel af spil, der udvikler sig i dag til indbygget a...
5 bedste arkadespil til Linux
I dag er computere seriøse maskiner, der bruges til spil. Hvis du ikke kan få den nye høje score, ved du hvad jeg mener. I dette indlæg vil du kende n...