Eeldused:
Enne selle õpetuse skripti harjutamist peate täitma järgmised ülesanded.
- Installige Django versioon 3+ Ubuntu 20+ (eelistatult)
- Looge Django projekt
- 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 queryappKä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 ülikasutajaLisage 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 moodulalates 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 queryappKä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ännataMuutke sisu admin.py järgmise sisuga fail. Siin, mudelite tooteklasss registreeritakse, kasutades Registreeri() meetod tooted tabelid Django halduse juhtpaneelil.
admin.py
# Impordi administraatori moodulalates 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
Django QuerySeti õpetus
Toote otsimine
ID | Nimi | Bränd | Hind |
---|---|---|---|
toode.id | toode.nimi | toode.bränd | style = "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 moodulalates 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 moodulalates 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.