Priekšnosacījumi:
Pirms praktizēt šīs apmācības skriptu, jums ir jāveic šādi uzdevumi.
- Instalējiet Django versiju 3+ Ubuntu 20+ (vēlams)
- Izveidojiet Django projektu
- Palaidiet Django serveri, lai pārbaudītu, vai serveris darbojas pareizi.
Django lietotnes iestatīšana:
Palaidiet šo komandu, lai izveidotu Django lietotni ar nosaukumu queryapp.
$ python3 pārvaldīt.py startapp queryappPalaidiet šo komandu, lai izveidotu lietotāju piekļuvei Django datu bāzei. Ja esat iepriekš izveidojis lietotāju, komanda nav jāpalaiž.
$ python3 pārvaldīt.py rada liellietotājuPievienojiet lietotnes nosaukumu mapē INSTALLED_APP daļa no iestatījumi.py failu.
INSTALLED_APPS = […
'queryapp'
]
Izveidojiet mapi ar nosaukumu veidnes iekšpusē queryapp mapi un iestatiet veidnes lietotnes atrašanās vieta Veidnes daļa no iestatījumi.py failu.
PARAUGI = [… .
'DIRS': ['/ home / fahmida / django_pro / queryapp / templates'],
… .
,
]
Izveidojiet datu bāzes tabulas modeli:
Atveriet modeļiem.py failu no queryapp mapi un pievienojiet šādu skriptu, lai definētu produktiem tabulas. Produkts klase ir definēta, lai izveidotu tabulu ar nosaukumu produktiem ar nosaukums, tips, zīmols, un cena lauki. Šeit, nosaukums, tips, un Zīmols laukos tiks saglabāti rakstzīmju dati un cena laukā tiks glabāti veseli skaitļi.
modeļiem.py
# Modeļu importēšanano django.db importēšanas modeļi
# Definējiet klasi, lai izveidotu produktu tabulu
klases produkts (modeļi.Modelis):
nosaukums = modeļi.CharField (maks. Garums = 100)
tips = modeļi.CharField (maks. Garums = 30)
zīmols = modeļi.CharField (maks. Garums = 50)
cena = modeļi.IntegerField ()
Palaidiet makemigrācijas komandu, lai izveidotu jaunu migrāciju, pamatojoties uz modeļu veiktajām izmaiņām.
$ python3 pārvaldīt.py makemigrations queryappPalaidiet migrēt komandu izpildīt SQL komandas un izveidot visas tabulas datu bāzē, kas definētas modeļiem.py failu.
$ python3 pārvaldīt.py migrētMainīt programmas saturu admin.py failu ar šādu saturu. Šeit, modeļu produktu klasifikācijas ir reģistrēts, izmantojot reģistrēties () metode, lai parādītu produktiem tabulas Django administrācijas informācijas panelī.
admin.py
# Importēt administratora modulino django.ieguldījuma importēšanas administrators
# Importēt produkta modeli
no .modeļi importē produktu
# Reģistrējiet produkta modeli
admin.vietne.reģistrēties (Produkts)
Izveidojiet veidnes failu ar nosaukumu productList.html iekšpusē queryapp / templates / ar šādu skriptu. Šajā skriptā tiks parādīti visi domēna produktiem tabula tabulas veidā ar meklēšanas lodziņu. Lietotājs varēs meklēt konkrētos ierakstus no produktu tabulas, izmantojot meklēšanas formu. priekš cilpa tiek izmantota skriptā, lai atkārtotu datus, kas nodoti no skati.py failu.
productList.html
Django QuerySet apmācība
Produkta meklēšana
ID | Nosaukums | Zīmols | Cena |
---|---|---|---|
produkts.id | produkts.nosaukums | produkts.Zīmols | style = "text-align: right"> $ produkts.cena |
Mainīt programmas saturu skati.py failu ar šādu skriptu. Modeļa un veidnes nosaukumi ir definēti ProductList klasē. get_queryset () klases metode ir definēta skriptā, lai filtrētu datus, pamatojoties uz saturu, ko iesniedz veidnes meklēšanas lodziņš. Produkts.objektiem.visi () metode atgriež visus produktiem tabula. pieprasījumu.GŪT.taustiņi () metode tiek izmantota skriptā, lai pārbaudītu, vai meklēšanas formā ir iesniegti dati. Ja šī metode atgriežas taisnība, tad pieprasījumu.GŪT.iegūt ('src') metode tiek izmantota, lai pārbaudītu, vai iesniegtā vērtība ir tukša vai nav. Ja šī metode atgriež vērtību, kas nav tukša, vērtība tiks saglabāta mainīgajā, atslēgvārds, un to izmantos datu filtrēšanai, pamatojoties uz Zīmols un tips lauki no produktiem tabula.
skati.py
# Importēt ListView modulino django.skati.vispārīgs importēšanas saraksts ListView
# Importēt produktu moduli
no .modeļi importē produktu
# Importēt Q moduli
no django.db.modeļi importē Q
# Definējiet vaicājumu datu klasi
klases produktu saraksts (ListView):
# Definējiet modeli
modelis = produkts
# Definēt veidni
template_name = 'produkta saraksts.html '
def get_queryset (pats):
# Iestatiet noklusējuma vaicājumu kopu
queryset = Produkts.objektiem.visi ()
# Pārbaudiet, vai veidlapas vērtība ir iesniegta
ja pats.pieprasījumu.GŪT.taustiņi ():
# Pārbaudiet meklēšanas atslēgvārdu
ja pats.pieprasījumu.GŪT.iegūt ('src') != ":
atslēgvārds = pats.pieprasījumu.GŪT.iegūt ('src')
# Iestatiet vaicājumu kopu, pamatojoties uz meklēšanas atslēgvārdu
queryset = Produkts.objektiem.filtrs (Q (zīmols = atslēgvārds.lielie burti ()) | Q (tips = atslēgvārds.lielie burti ()))
atgriešanās vaicājuma kopa
Mainīt programmas saturu URL.py failu ar šādu skriptu. Skriptā “searchPro/ 'ceļš ir noteikts, lai izsauktu ProductList.as_view () metode, kas nosūtīs visus datus un filtrētos datus produktiem tabulas veidnes failā.
URL.py
# Importēt administratora modulino django.ieguldījuma importēšanas administrators
# Importēt ceļu un iekļaut moduli
no django.URL importēšanas ceļš
# Importēt SearchEmployee moduli
no queryapp.skatījumi importē ProductList
urlpatterns = [
# Definējiet administratora ceļu
ceļš ('admin /', admin.vietne.URL),
# Definējiet ceļu uz produktu meklēšanu
ceļš ('searchPro /', ProductList.as_view ()),
Pievienojiet ierakstus tabulā:
Atveriet Django administrācijas lapu un pievienojiet dažus ierakstus produktiem tabulas, lai pēc tam lietotu vaicājuma kopu. Šeit ir ievietoti pieci ieraksti.
Visi produktu ieraksti ar meklēšanas lodziņu tiks parādīti pārlūkprogrammā pēc šī URL izpildes.
http: // localhost: 8000 / searchPro
Visi šampūnu produkti, kas tiek parādīti, ja produkta veids iršampūns'tiks meklēts meklēšanas lodziņā.
Piena pulvera produkti no svaigi zīmols tiks parādīts, ja produkta zīmols, ”svaigi'tiks meklēts meklēšanas lodziņā.
Secinājums:
Šajā apmācībā ir izskaidrots vienkāršas datu bāzes tabulas datu filtrēšanas veids, izmantojot vaicājuma kopu. Datus var filtrēt dažādos veidos. Lasītāji sapratīs, ka vaicājuma kopas izmantošana, lai filtrētu vai meklētu datus pārlūkprogrammā, izlasīs šo apmācību.