Django

Kako koristiti queryset u django

Kako koristiti queryset u django
Većina web aplikacija sada se implementira s bazom podataka. queryset koristi se u aplikaciji Django za dohvaćanje zapisa filtriranjem ili rezanjem ili poredanjem tablice baze podataka bez promjene izvornih podataka. Model je koristio Django za stvaranje tablice u bazi podataka. Dakle, znanje korištenja modela u Djangu neophodno je da bismo razumjeli upotrebu skupa upita. Glavna funkcija skupa upita je ponavljanje zapisa tablica baze podataka pretvaranjem u SQL upite. Može se koristiti iz naredbenog retka python ili pisanjem python skripte za prikaz rezultata preglednika. Korištenje skupa upita za dohvaćanje podataka iz tablice baze podataka na različite načine objašnjeno je u ovom vodiču.

Preduvjeti:

Prije vježbanja skripte ovog vodiča, morate izvršiti sljedeće zadatke.

  1. Instalirajte Django verziju 3+ na Ubuntu 20+ (po mogućnosti)
  2. Stvorite Django projekt
  3. Pokrenite Django poslužitelj kako biste provjerili poslužitelj ispravno radi ili ne.

Postavljanje aplikacije Django:

Pokrenite sljedeću naredbu za stvaranje Django aplikacije s imenom queryapp.

$ python3 upravljanje.py startapp queryapp

Pokrenite sljedeću naredbu za stvaranje korisnika za pristup Django bazi podataka. Ako ste već stvorili korisnika, tada ne morate pokretati naredbu.

$ python3 upravljanje.py stvarauporabitelja

Dodajte naziv aplikacije u INSTALLED_APP dio postavke.py datoteka.

INSTALLED_APPS = [
..
'queryapp'
]

Stvorite mapu s imenom predlošci unutar queryapp mapu i postavite predložaka mjesto aplikacije u PREDLOZI dio postavke.py datoteka.

PREDLOZI = [

.. .
'DIRS': ['/ home / fahmida / django_pro / queryapp / predlošci'],
.. .
,
]

Stvorite model za tablicu baze podataka:

Otvori modeli.py datoteka iz queryapp mapu i dodajte sljedeću skriptu da definirate strukturu proizvoda stolovi. Proizvod klasa je definirana za stvaranje tablice s imenom proizvoda s ime, vrsta, marka, i cijena polja. Ovdje, ime, tip, i marka polja pohranit će podatke o znakovima, a cijena polje će pohraniti cjelobrojne podatke.

modeli.py

# Uvoz modula modula
iz djanga.db modeli uvoza
# Definirajte klasu za izradu tablice proizvoda
razred Proizvod (modeli.Model):
ime = modeli.CharField (max_length = 100)
vrsta = modeli.CharField (max_length = 30)
marka = modeli.CharField (max_length = 50)
cijena = modeli.IntegerField ()

Pokrenite makemigracije naredba za stvaranje nove migracije na temelju promjena koje su izvršili modeli.

$ python3 upravljanje.py makemigrations queryapp

Pokrenite migrirati naredba za izvršavanje SQL naredbi i stvaranje svih tablica u bazi podataka koje su definirane u modeli.py datoteka.

$ python3 upravljanje.py migrirati

Izmijenite sadržaj admin.py datoteka sa sljedećim sadržajem. Ovdje, modeli 'Klase proizvodas registrira se pomoću Registar() metoda za prikaz proizvoda tablice na nadzornoj ploči administracije Django.

admin.py

# Uvoz administrativnog modula
iz djanga.doprinos uvoz admin
# Uvoz modela proizvoda
iz .modeli uvoz proizvoda
# Registrirajte model proizvoda
admin.web mjesto.registrirati (proizvod)

Stvorite datoteku predloška s imenom lista proizvoda.html unutar queryapp / predlošci / sa sljedećom skriptom. Ova skripta prikazat će sve podatke sustava proizvoda tablica u tabličnom obliku s okvirom za pretraživanje. Korisnik će moći pretraživati ​​pojedine zapise iz tablice proizvoda pomoću obrasca za pretraživanje. za petlja koristi se u skripti za ponavljanje podataka proslijeđenih iz pogleda.py datoteka.

lista proizvoda.html



<br>Vodič za Django QuerySet<br>



Traženje proizvoda



% csrf_token%
Proizvod za pretraživanje:







% za proizvod na object_list%



% endfor%
iskaznicaImeMarkaCijena
proizvod.iskaznica proizvod.Ime proizvod.markastyle = "text-align: right"> $ proizvod.cijena



Izmijenite sadržaj pogleda.py datoteka sa sljedećom skriptom. Imena modela i predloška definirana su u Lista proizvoda razred. get_queryset () metoda klase definirana je u skripti za filtriranje podataka na temelju sadržaja poslanog u okvir za pretraživanje predloška. Proizvod.predmeta.svi() metoda vraća sve zapise datoteke proizvoda stol. zahtjev.DOBITI.tipke () metoda koristi se u skripti za provjeru podataka koji se dostavljaju putem obrasca za pretraživanje. Ako se ova metoda vrati pravi, onda zahtjev.DOBITI.get ('src') metoda koristi se za provjeru da li je poslana vrijednost prazna ili nije. Ako ova metoda vrati vrijednost koja nije prazna, tada će se vrijednost pohraniti u varijablu, ključna riječ, a služit će za filtriranje podataka na temelju marka i tip polja iz proizvoda stol.

pogleda.py

# Uvoz modula ListView
iz djanga.pogleda.generički uvoz ListView
# Uvoz modula proizvoda
iz .modeli uvoz proizvoda
# Uvoz Q modula
iz djanga.db.modeli uvoz Q
# Definirajte klasu za upite podataka
class ProductList (ListView):
# Definirajte model
model = Proizvod
# Definirajte predložak
template_name = 'popis proizvoda.html '
def get_queryset (self):
# Postavite zadani skup upita
queryset = Proizvod.predmeta.svi()
# Provjerite je li vrijednost obrasca poslana ili nije
ako ja.zahtjev.DOBITI.tipke ():
# Provjerite ključnu riječ za pretraživanje
ako ja.zahtjev.DOBITI.get ('src') != ":
ključna riječ = samo.zahtjev.DOBITI.get ('src')
# Postavite skup upita na temelju ključne riječi za pretraživanje
queryset = Proizvod.predmeta.filter (Q (brand = ključna riječ.pisati velikim slovom ()) | Q (type = ključna riječ.pisanje velikih slova ()))
return queryset

Izmijenite sadržaj url adrese.py datoteka sa sljedećom skriptom. U scenariju, 'searchPro/ 'staza definirana je za pozivanje Lista proizvoda.as_view () metoda koja će poslati sve podatke i filtrirane podatke proizvoda tablicu u datoteku predloška.

url adrese.py

# Uvoz administrativnog modula
iz djanga.doprinos uvoz admin
# Uvezi put i uključi modul
iz djanga.put uvoza URL-ova
# Uvoz modula SearchEfficiee
iz queryappa.pregleda uvoz ProductList
urlpatterns = [
# Definirajte put za administratora
put ('admin /', admin.web mjesto.URL-ovi),
# Definirajte put do proizvoda za pretraživanje
path ('searchPro /', ProductList.as_view ()),

U tablicu dodajte zapise:

Otvorite stranicu Administracija Django i dodajte nekoliko zapisa u proizvoda tablici na koju se tada primjenjuje skup upita. Ovdje je umetnuto pet zapisa.

Svi zapisi o proizvodima s okvirom za pretraživanje bit će prikazani u pregledniku nakon izvršavanja sljedećeg URL-a.

http: // localhost: 8000 / searchPro


Svi proizvodi šampona prikazani ako vrsta proizvoda, 'šampon'pretražit će se u okviru za pretraživanje.

Proizvodi od mlijeka u prahu svježe marka će se prikazati ako marka proizvoda, 'svježe'pretražit će se u okviru za pretraživanje.

Zaključak:

Način filtriranja podataka jednostavne tablice baze podataka pomoću skupa upita objasnio je u ovom vodiču. Podaci se mogu filtrirati na različite načine. Čitatelji će razumjeti upotrebu skupa upita za filtriranje ili pretraživanje podataka u pregledniku nakon čitanja ovog vodiča.

Kako preuzeti i igrati Sid Meier's Civilization VI na Linuxu
Uvod u igru Civilization 6 moderan je pogled na klasični koncept predstavljen u seriji igara Age of Empires. Ideja je bila prilično jednostavna; započ...
Kako instalirati i igrati Doom na Linuxu
Uvod u Doom Serija Doom nastala je 90-ih nakon izlaska originalnog Dooma. To je bio trenutni hit i od tog vremena nadalje igraća serija dobila je broj...
Vulkan za korisnike Linuxa
Sa svakom novom generacijom grafičkih kartica vidimo da programeri igara pomiču granice grafičke vjernosti i dolaze na korak od fotorealizma. No, bez ...