Django

Kaip naudoti queryset django

Kaip naudoti queryset django
Dauguma žiniatinklio programų yra įdiegtos dabar naudojant duomenų bazę. „queryset“ naudojamas programoje „Django“, norint gauti įrašus filtruojant, pjaustant arba užsakant duomenų bazės lentelę nekeičiant pradinių duomenų. Modelis naudojo Django kurdamas lentelę duomenų bazėje. Taigi, norint suprasti „queryset“ naudojimą, reikia žinoti apie modelio naudojimą „Django“. Pagrindinė užklausų rinkinio funkcija yra kartoti duomenų bazės lentelių įrašus, paverčiant juos SQL užklausomis. Jį galima naudoti iš python komandinės eilutės arba parašius python scenarijų, kad būtų rodoma naršyklės išvestis. Šioje pamokoje buvo paaiškinta „queryset“ naudojimas įvairiems būdams gauti duomenis iš duomenų bazės lentelės.

Būtinos sąlygos:

Prieš praktikuodami šios mokymo programos scenarijų, turite atlikti šias užduotis.

  1. Įdiekite „Django“ versiją 3+ „Ubuntu 20+“ (geriausia)
  2. Sukurkite „Django“ projektą
  3. Paleiskite „Django“ serverį ir patikrinkite, ar serveris veikia tinkamai.

Nustatykite „Django“ programą:

Norėdami sukurti „Django“ programą, paleiskite šią komandą queryapp.

$ python3 valdyti.py startapp queryapp

Vykdykite šią komandą, kad sukurtumėte vartotoją, kad pasiektumėte „Django“ duomenų bazę. Jei vartotoją sukūrėte anksčiau, komandos paleisti nereikia.

$ python3 valdyti.py sukurianaudotojas

Pridėkite programos pavadinimą INSTALLED_APP dalis parametrus.py failą.

INSTALLED_APPS = [

„queryapp“
]

Sukurkite aplanką pavadinimu šablonai viduje queryapp aplanką ir nustatykite šablonai programos vieta Šablonai dalis parametrus.py failą.

Šablonai = [

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

Sukurkite duomenų bazės lentelės modelį:

Atidaryk modeliai.py failą iš queryapp aplanką ir pridėkite šį scenarijų, kad apibrėžtumėte Produktai stalai. Produktas klasė yra apibrėžta norint sukurti lentelę pavadinimu Produktai su pavadinimas, tipas, prekės ženklas, ir kaina laukai. Čia, pavadinimas, tipas, ir prekės ženklą laukuose bus saugomi simbolių duomenys, o kaina lauke bus saugomi sveikojo skaičiaus duomenys.

modeliai.py

# Importuoti modelių modulį
nuo django.db importavimo modeliai
# Apibrėžkite klasę, kad sukurtumėte produktų lentelę
klasės produktas (modeliai.Modelis):
vardas = modeliai.„CharField“ (maks. Ilgis = 100)
tipas = modeliai.„CharField“ (maks. Ilgis = 30)
prekės ženklas = modeliai.„CharField“ (maks. Ilgis = 50)
kaina = modeliai.„IntegerField“ ()

Paleiskite makemigracijos komandą sukurti naują perkėlimą, remiantis modelių atliktais pakeitimais.

$ python3 valdyti.py makemigrations queryapp

Paleiskite migruoti komandą vykdyti SQL komandas ir sukurti visas duomenų bazės lenteles, apibrėžtas modeliai.py failą.

$ python3 valdyti.py migruoti

Keisti administratorius.py failą su tokiu turiniu. Čia, modelių gaminių klasės yra užregistruotas naudojant Registruotis() metodas rodyti Produktai lenteles Django administracijos informacijos suvestinėje.

administratorius.py

# Importuoti administratoriaus modulį
nuo django.įnašo importo administratorius
# Importuoti produkto modelį
nuo .modeliai importuoja Produktą
# Užregistruokite gaminio modelį
administratorius.svetainėje.registruotis (produktas)

Sukurkite šablono failą pavadinimu productList.HTML viduje queryapp / templates / su tokiu scenarijumi. Šiame scenarijuje bus rodomi visi Produktai lentelė lentelės forma su paieškos laukeliu. Vartotojas galės ieškoti konkrečių įrašų iš produktų lentelės naudodamasis paieškos forma. dėl ciklas naudojamas scenarijuje pakartoti iš Peržiūrų.py failą.

productList.HTML



<br>„Django QuerySet“ pamoka<br>



Ieškoma produkto



% csrf_token%
Paieškos produktas:







% produkto objekto sąraše%



% endfor%
IDvardasPrekės ženklasKaina
produktas.id produktas.vardas produktas.prekės ženklasstyle = "text-align: right"> $ produktas.kaina



Keisti Peržiūrų.py failas su tokiu scenarijumi. Modelio ir šablonų pavadinimai yra apibrėžti „ProductList“ klasė. get_queryset () klasės metodas yra apibrėžtas scenarijuje, norint filtruoti duomenis pagal turinį, kurį pateikia šablono paieškos laukelis. Produktas.objektai.visi () metodas grąžina visus Produktai stalo. prašymą.GAUTI.raktai() metodas naudojamas scenarijuje patikrinti, ar visi duomenys pateikiami paieškos formoje. Jei šis metodas grįš tiesa, tada prašymą.GAUTI.gauti („src“) metodas naudojamas patikrinti, ar pateikta vertė tuščia. Jei šis metodas pateikia ne tuščią vertę, vertė bus saugoma kintamajame, raktinis žodis, ir jis bus naudojamas duomenims filtruoti remiantis prekės ženklą ir tipo laukai nuo Produktai stalo.

Peržiūrų.py

# Importuoti „ListView“ modulį
nuo django.Peržiūrų.bendras importavimas „ListView“
# Importuoti gaminį
nuo .modeliai importuoja Produktą
# Importuoti Q modulį
nuo django.db.modeliai importuoja Q
# Apibrėžkite užklausų duomenų klasę
klasės „ProductList“ („ListView“):
# Apibrėžkite modelį
modelis = produktas
# Apibrėžkite šabloną
template_name = 'productList.HTML '
def get_queryset (savarankiškai):
# Nustatykite numatytąjį užklausų rinkinį
queryset = produktas.objektai.visi ()
# Patikrinkite, ar formos vertė pateikta, ar ne
jei pats.prašymą.GAUTI.raktai():
# Patikrinkite paieškos raktinį žodį
jei pats.prašymą.GAUTI.gauti („src“) != ":
keyword = self.prašymą.GAUTI.gauti ('src')
# Nustatykite užklausų rinkinį pagal paieškos raktinį žodį
queryset = produktas.objektai.filtras (Q (prekės ženklas = raktinis žodis.rašyti didžiosiomis raidėmis ()) | Q (tipas = raktinis žodis.rašyti didžiosiomis raidėmis ()))
grįžimo užklausa

Keisti URL.py failas su tokiu scenarijumi. Scenarijuje „searchPro/ 'kelias yra apibrėžtas, norint iškviesti „ProductList“.as_view () metodas, kuris siųs visus duomenis ir filtruotus duomenis Produktai lentelę į šablono failą.

URL.py

# Importuoti administratoriaus modulį
nuo django.įnašo importo administratorius
# Importo kelias ir modulis
nuo django.URL importavimo kelias
# Importuoti „SearchEmployee“ modulį
iš queryapp.peržiūros importuoja „ProductList“
urlpatterns = [
# Apibrėžkite administratoriaus kelią
kelias ('admin /', admin.svetainėje.URL),
# Apibrėžkite paieškos produkto kelią
kelias ('searchPro /', ProductList.as_view ()),

Įtraukite įrašus į lentelę:

Atidarykite „Django Administration“ puslapį ir pridėkite keletą įrašų į Produktai lentelę, kad tada pritaikytumėte užklausų rinkinį. Čia buvo įterpti penki įrašai.

Visi produktų įrašai su paieškos laukeliu bus rodomi naršyklėje atlikus šį URL.

http: // localhost: 8000 / searchPro


Visi šampūno produktai, rodomi, jei produkto tipas “šampūnas'bus ieškoma paieškos laukelyje.

Pieno miltelių produktai iš šviežias prekės ženklas bus rodomas, jei prekės ženklas "šviežias'bus ieškoma paieškos laukelyje.

Išvada:

Šiame vadovėlyje paaiškintas paprastos duomenų bazės lentelės duomenų filtravimo būdas naudojant užklausos rinkinį. Duomenis galima filtruoti įvairiai. Skaitydami šią pamoką, skaitytojai supras, kaip naudoti užklausos rinkinį duomenims filtruoti ar ieškoti naršyklėje.

5 geriausi „Arcade“ žaidimai, skirti „Linux“
Šiais laikais kompiuteriai yra rimta mašina, naudojama žaidimams. Jei negalėsite gauti naujo aukšto rezultato, žinosite, ką noriu pasakyti. Šiame įraš...
Mūšis už Wesnothą 1.13.6 Išleista plėtra
Mūšis už Wesnothą 1.13.6 išleistas praėjusį mėnesį, yra šeštasis 1 versijos kūrimo leidimas.13.„x“ serija ir ji teikia daug patobulinimų, ypač vartoto...
Kaip įdiegti „League of Legends“ „Ubuntu 14“.04
Jei esate „League of Legends“ gerbėjas, tai jums yra galimybė išbandyti „League of Legends“. Atminkite, kad LOL palaikoma „PlayOnLinux“, jei esate „Li...