Preduvjeti:
Prije vježbanja skripte ovog vodiča, morate izvršiti sljedeće zadatke.
- Instalirajte Django verziju 3+ na Ubuntu 20+ (po mogućnosti)
- Stvorite Django projekt
- 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 queryappPokrenite sljedeću naredbu za stvaranje korisnika za pristup Django bazi podataka. Ako ste već stvorili korisnika, tada ne morate pokretati naredbu.
$ python3 upravljanje.py stvarauporabiteljaDodajte 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 modulaiz 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 queryappPokrenite migrirati naredba za izvršavanje SQL naredbi i stvaranje svih tablica u bazi podataka koje su definirane u modeli.py datoteka.
$ python3 upravljanje.py migriratiIzmijenite 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 modulaiz 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
Vodič za Django QuerySet
Traženje proizvoda
iskaznica | Ime | Marka | Cijena |
---|---|---|---|
proizvod.iskaznica | proizvod.Ime | proizvod.marka | style = "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 ListViewiz 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 modulaiz 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.