Django

Kuidas kasutada querysetti djangos

Kuidas kasutada querysetti djangos
Enamik veebirakendusi on nüüd andmebaasiga rakendatud. päringukomplekti kasutatakse Django rakenduses kirjete hankimiseks, filtreerides või tükeldades või tellides andmebaasi tabelit algandmeid muutmata. Mudel kasutas andmebaasis tabeli loomiseks Djangot. Niisiis, teadmised mudeli kasutamisest Djangos on vajalikud selleks, et mõista päringukomplekti kasutamist. Päringukomplekti põhiülesanne on andmebaasitabelite kirjete kordamine, teisendades need SQL-päringuteks. Seda saab kasutada pythoni käsurealt või kirjutades pythoni skripti brauseri väljundi kuvamiseks. Selles õpetuses on selgitatud päringute komplekti kasutamist andmebaasitabelist andmete erinevatel viisidel hankimiseks.

Eeldused:

Enne selle õpetuse skripti harjutamist peate täitma järgmised ülesanded.

  1. Installige Django versioon 3+ Ubuntu 20+ (eelistatult)
  2. Looge Django projekt
  3. Käivitage Django server, et kontrollida, kas server töötab korralikult või mitte.

Django rakenduse seadistamine:

Django nimelise rakenduse loomiseks käivitage järgmine käsk queryapp.

$ python3 hallata.py startapp queryapp

Käivitage järgmine käsk, et luua kasutaja Django andmebaasile juurdepääsuks. Kui olete kasutaja varem loonud, ei pea te käsku käivitama.

$ python3 hallata.py loob ülikasutaja

Lisage rakenduse nimi rakendusse INSTALLED_APP osa seaded.py faili.

INSTALLED_APPS = [

'queryapp'
]

Looge kaust nimega mallid sees queryapp kaust ja määrake malli omad rakenduse asukoht MALLID osa seaded.py faili.

MALLID = [

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

Looge andmebaasitabeli mudel:

Ava mudelid.py fail failist queryapp kaust ja lisage järgmise skripti struktuuri määratlemiseks tooted tabelid. Toode klass on määratletud nimega tabeli loomiseks tooted koos nimi, tüüp, kaubamärk, ja hind väljad. Siin, nimi, tüüp, ja bränd väljad salvestavad märkide andmed ja hind väli salvestab täisarvu andmed.

mudelid.py

# Mudelite importimise moodul
alates django.db impordimudelid
# Määrake toodete tabeli loomiseks klass
klassi toode (mudelid.Mudel):
nimi = mudelid.CharField (max_pikkus = 100)
tüüp = mudelid.CharField (max_pikkus = 30)
bränd = mudelid.CharField (max_pikkus = 50)
hind = mudelid.IntegerField ()

Käivitage makemigratsioonid käsk luua uus ränne mudelite tehtud muudatuste põhjal.

$ python3 hallata.py makemigrations queryapp

Käivitage rändama käsk SQL-i käskude käivitamiseks ja kõigi andmebaasis määratletud tabelite loomiseks mudelid.py faili.

$ python3 hallata.py rännata

Muutke sisu admin.py järgmise sisuga fail. Siin, mudelite tooteklasss registreeritakse, kasutades Registreeri() meetod tooted tabelid Django halduse juhtpaneelil.

admin.py

# Impordi administraatori moodul
alates django.kaastöö impordi admin
# Toote mudeli importimine
alates .mudelid impordivad toodet
# Registreerige toote mudel
admin.sait.registreerima (toode)

Looge mallifail nimega productList.HTML sees queryapp / templates / järgmise skriptiga. See skript kuvab kõik domeeni tooted tabel tabelina koos otsingukastiga. Kasutajal on võimalik otsinguvormi abil otsida konkreetseid kirjeid toodete tabelist. eest tsüklit kasutatakse skriptis failist vaated.py faili.

productList.HTML



<br>Django QuerySeti õpetus<br>



Toote otsimine



% csrf_token%
Otsi toodet:







% toote_loendis% toote jaoks



% endfor%
IDNimiBrändHind
toode.id toode.nimi toode.brändstyle = "text-align: right"> $ toode.hind



Muutke sisu vaated.py fail järgmise skriptiga. Mudeli ja malli nimed on määratletud dokumendis Tooteloend klass. get_queryset () klassi meetod on skriptis määratletud andmete filtreerimiseks malli otsingukasti esitatud sisu põhjal. Toode.objektid.kõik () meetod tagastab kõik tooted tabel. taotlus.Hangi.võtmed () meetodit kasutatakse skriptis, et kontrollida, kas otsinguvorm esitab kõik andmed. Kui see meetod naaseb tõsi, siis taotlus.Hangi.saada ('src') meetodit kasutatakse selleks, et kontrollida, kas esitatud väärtus on tühi või mitte. Kui see meetod tagastab mittetühja väärtuse, siis väärtus salvestatakse muutujasse, märksõna, ja seda kasutatakse andmete põhjal filtreerimiseks bränd ja tüüp väljad tooted tabel.

vaated.py

# Import ListView moodul
alates django.vaated.üldine import ListView
# Toote mooduli importimine
alates .mudelid impordivad toodet
# Impordi Q moodul
alates django.db.mudelid impordivad Q
# Määrake päringute andmete klass
klassi tooteloend (ListView):
# Määratlege mudel
mudel = toode
# Määra mall
malli_nimi = 'toote loend.html '
def get_queryset (ise):
# Määrake vaikepäringute komplekt
queryset = toode.objektid.kõik ()
# Kontrollige, kas vormi väärtus on esitatud või mitte
kui ise.taotlus.Hangi.võtmed ():
# Kontrollige otsingu märksõna
kui ise.taotlus.Hangi.saada ('src') != ":
märksõna = ise.taotlus.Hangi.saada ('src')
# Määrake päringukomplekt otsingu märksõna põhjal
queryset = toode.objektid.filter (Q (bränd = märksõna.suurtäht ()) | Q (tüüp = märksõna.suurtähtedega ()))
tagasipöördumise päring

Muutke sisu URL-id.py fail järgmise skriptiga. Skriptis onsearchPro/ 'on määratletud tee kutsumiseks Tooteloend.as_view () meetod, mis saadab kõik andmed ja filtreeritud andmed tooted tabel malli faili.

URL-id.py

# Impordi administraatori moodul
alates django.kaastöö impordi admin
# Impordi tee ja kaasake moodul
alates django.URL-ide importimise tee
# Impordi SearchEmployee moodul
päringust appsapp.vaadete importimine ProductList
urlpatterns = [
# Määrake administraatori tee
tee ('admin /', admin.sait.URL-id),
# Määratlege tee toote otsimiseks
tee ('searchPro /', ProductList.as_view ()),

Lisage tabelisse kirjed:

Avage leht Django Administration ja lisage mõned kirjed tooted tabeli, et sellel juhul päringukomplekti rakendada. Siia on lisatud viis kirjet.

Kõik otsingukastiga toodete kirjed kuvatakse brauseris pärast järgmise URL-i käivitamist.

http: // localhost: 8000 / searchPro


Kõik šampoonitooted, kui toote tüüp onšampoon'otsitakse otsingukastist.

Tootja värske brändi kuvatakse, kui toote bränd, "värske'otsitakse otsingukastist.

Järeldus:

Selles õpetuses on selgitatud, kuidas lihtsa andmebaasitabeli andmeid filtreerida päringukomplekti abil. Andmeid saab filtreerida erineval viisil. Lugejad saavad pärast selle õpetuse lugemist aru, kuidas brauseris andmeid filtreerida või otsida päringukomplekti abil.

5 parimat arkaadmängu Linuxile
Tänapäeval on arvutid tõsised mängimiseks kasutatavad masinad. Kui te ei saa uut rekordit, teate, mida ma mõtlen. Selles postituses saate teada mõnda ...
Lahing Wesnothi eest 1.13.6 Areng vabastati
Lahing Wesnothi eest 1.13.6 ilmus eelmisel kuul, on 1-s kuues arendusversioon.13.x-seeria ja see pakub mitmeid täiustusi, eelkõige kasutajaliidese ja ...
League of Legendsi installimine Ubuntu 14-le.04
Kui olete League of Legends fänn, siis on see teile võimalus proovida League of Legendsit. Pange tähele, et LOL-i toetab PlayOnLinux, kui olete Linuxi...