Förutsättningar:
Innan du tränar på skriptet i den här självstudien måste du slutföra följande uppgifter.
- Installera Django version 3+ på Ubuntu 20+ (helst)
- Skapa ett Django-projekt
- Kör Django-servern för att kontrollera att servern fungerar korrekt eller inte.
Ställ in en Django-app:
Kör följande kommando för att skapa en Django-app med namnet queryapp.
$ python3 hantera.py startapp queryappKör följande kommando för att skapa användaren för åtkomst till Django-databasen. Om du har skapat användaren tidigare behöver du inte köra kommandot.
$ python3 hantera.py skaparanvändareLägg till appnamnet i INSTALLERAD_APP del av inställningar.py fil.
INSTALLED_APPS = [..
'queryapp'
]
Skapa en mapp med namnet mallar inuti queryapp mapp och ställ in mallar plats för appen i MALLAR del av inställningar.py fil.
MALLAR = [.. .
'DIRS': ['/ home / fahmida / django_pro / queryapp / templates'],
.. .
,
]
Skapa en modell för databastabellen:
Öppna modeller.py fil från queryapp mappen och lägg till följande skript för att definiera strukturen för Produkter tabeller. Produkt klass definieras för att skapa en tabell med namnet Produkter med namn, typ, varumärke, och pris fält. Här, namn, typ, och varumärke fält kommer att lagra teckendata och pris fältet kommer att lagra heltalsdata.
modeller.py
# Importera modeller-modulenfrån django.db-importmodeller
# Definiera klass för att skapa produkttabell
klass Produkt (modeller.Modell):
namn = modeller.CharField (max_length = 100)
typ = modeller.CharField (max_length = 30)
varumärke = modeller.CharField (max_length = 50)
pris = modeller.IntegerField ()
Springa det makemigrationer kommando för att skapa en ny migration baserat på de ändringar som gjorts av modellerna.
$ python3 hantera.py makemigrations queryappSpringa det flytta kommando för att utföra SQL-kommandon och skapa alla tabeller i databasen som definieras i modeller.py fil.
$ python3 hantera.py migreraÄndra innehållet i administration.py fil med följande innehåll. Här, modellernas produktklassers registreras med hjälp av Registrera() metod för att visa Produkter i Django-administrationspanelen.
administration.py
# Importera administratörsmodulfrån django.bidrag importadministratör
# Importera produktmodell
från .modeller importerar produkt
# Registrera produktmodell
administration.webbplats.registrera (Produkt)
Skapa en mallfil med namnet produktlista.html inuti queryapp / mallar / med följande skript. Det här skriptet visar alla data från Produkter tabell i tabellform med en sökruta. Användaren kommer att kunna söka i de specifika posterna från produkttabellen med hjälp av sökformuläret. för loop används i skriptet för att upprepa data som skickats från utsikt.py fil.
produktlista.html
Django QuerySet Tutorial
Söker produkt
ID | namn | varumärke | Pris |
---|---|---|---|
produkt.id | produkt.namn | produkt.varumärke | style = "text-align: right"> $ produkt.pris |
Ändra innehållet i utsikt.py fil med följande skript. Modell- och mallnamnen definieras i Produktlista klass. get_queryset () metod för klassen definieras i skriptet för att filtrera data baserat på innehållet som skickas in i sökrutan i mallen. Produkt.föremål.Allt() metoden returnerar alla poster för Produkter tabell. begäran.SKAFFA SIG.nycklar () metod används i skriptet för att kontrollera att data skickas in av sökformuläret. Om den här metoden återkommer Sann, sedan begäran.SKAFFA SIG.få ('src') metoden används för att kontrollera att det inlämnade värdet är tomt eller inte. Om den här metoden returnerar ett icke-tomt värde lagras värdet i variabeln, nyckelord, och den kommer att användas för att filtrera data baserat på varumärke och typ fält från Produkter tabell.
utsikt.py
# Import ListView-modulfrån django.utsikt.generisk import ListView
# Importera produktmodul
från .modeller importerar produkt
# Importera Q-modul
från django.db.modeller importerar Q
# Definiera klass för frågedata
klass Produktlista (ListView):
# Definiera modell
modell = Produkt
# Definiera mall
template_name = 'productList.html '
def get_queryset (själv):
# Ställ in standardfrågesatsen
queryset = Produkt.föremål.Allt()
# Kontrollera att formulärvärdet skickas in eller inte
om själv.begäran.SKAFFA SIG.nycklar ():
# Kontrollera sökordet
om själv.begäran.SKAFFA SIG.få ('src') != ":
nyckelord = själv.begäran.SKAFFA SIG.få ('src')
# Ställ in frågesatsen baserat på sökord
queryset = Produkt.föremål.filter (Q (varumärke = nyckelord.kapitalisera ()) Q (typ = nyckelord.kapitalisera()))
returnera frågeset
Ändra innehållet i webbadresser.py fil med följande skript. I manuset står 'searchPro/ 'sökväg definieras för att anropa Produktlista.as_view () metod som skickar all data och filtrerade data från Produkter tabellen till mallfilen.
webbadresser.py
# Importera administratörsmodulfrån django.bidrag importadministratör
# Importera sökväg och inkludera modul
från django.webbadress för webbadresser
# Importera sökmedlemmodul
från queryapp.visningar importerar ProductList
urlmönster = [
# Definiera sökvägen för admin
sökväg ('admin /', admin.webbplats.webbadresser),
# Definiera sökvägen till sökprodukt
sökväg ('searchPro /', ProductList.as_view ()),
Lägg till poster i tabellen:
Öppna Django Administration-sidan och lägg till några poster i Produkter tabell för att tillämpa frågesatsen på den tiden. Här har fem poster införts.
Alla poster för produkterna med sökrutan visas i webbläsaren efter att följande URL har körts.
http: // localhost: 8000 / searchPro
Alla schampoprodukter som visas om produkttypen, 'schampokommer att sökas i sökrutan.
Mjölkpulverprodukterna från den färska varumärke visas om produktmärket, 'färskkommer att sökas i sökrutan.
Slutsats:
Sättet att filtrera data i en enkel databastabell med hjälp av queryset har förklarats i denna handledning. Uppgifterna kan filtreras på olika sätt. Läsarna förstår att använda en frågesats för att filtrera eller söka i data i webbläsaren efter att ha läst denna handledning.