Django

Hur man använder queryset i django

Hur man använder queryset i django
De flesta webbapplikationer implementeras med databasen nu. queryset används i Django-applikationen för att hämta poster genom att filtrera eller skära eller beställa databastabellen utan att ändra originaldata. Modellen använde Django för att skapa tabellen i databasen. Så kunskapen om att använda modellen i Django är nödvändig för att förstå användningen av queryset. Frågesettets huvudsakliga funktion är att itera register över databastabeller genom att konvertera dem till SQL-frågor. Den kan användas från python-kommandoraden eller genom att skriva python-skriptet för att visa webbläsarens utdata. Användningen av queryset för att hämta data från en databastabell på olika sätt har förklarats i denna handledning.

Förutsättningar:

Innan du tränar på skriptet i den här självstudien måste du slutföra följande uppgifter.

  1. Installera Django version 3+ på Ubuntu 20+ (helst)
  2. Skapa ett Django-projekt
  3. 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 queryapp

Kö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ändare

Lä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-modulen
frå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 queryapp

Springa 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örsmodul
frå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



<br>Django QuerySet Tutorial<br>



Söker produkt



% csrf_token%
Sök produkt:







% för produkt i objektlista%



% endfor%
IDnamnvarumärkePris
produkt.id produkt.namn produkt.varumärkestyle = "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-modul
frå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örsmodul
frå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.

OpenTTD-handledning
OpenTTD är ett av de mest populära affärssimuleringsspelen där ute. I det här spelet måste du skapa en underbar transportaffär. Du kommer dock att bör...
SuperTuxKart för Linux
SuperTuxKart är en fantastisk titel som är utformad för att ge dig Mario Kart-upplevelsen gratis på ditt Linux-system. Det är ganska utmanande och rol...
Battle for Wesnoth Tutorial
Slaget om Wesnoth är ett av de mest populära open source-strategispel som du kan spela just nu. Det här spelet har inte bara utvecklats under mycket l...