Django

Kā izmantot queryset django

Kā izmantot queryset django
Lielākā daļa tīmekļa lietojumprogrammu tagad tiek ieviestas ar datu bāzi. queryset tiek izmantots Django lietojumprogrammā, lai izgūtu ierakstus, filtrējot vai sagriežot vai pasūtot datu bāzes tabulu, nemainot sākotnējos datus. Modelis izmantoja Django, lai izveidotu tabulu datu bāzē. Tātad zināšanas par modeļa izmantošanu Django ir nepieciešamas, lai izprastu vaicājuma kopas izmantošanu. Galvenā vaicājuma kopas funkcija ir atkārtot datu bāzes tabulu ierakstus, tos pārveidojot SQL vaicājumos. To var izmantot no python komandrindas vai uzrakstot python skriptu, lai parādītu pārlūkprogrammas izvadi. Šajā apmācībā ir izskaidroti vaicājuma kopas izmantošanas veidi datu izgūšanai no datu bāzes tabulas dažādos veidos.

Priekšnosacījumi:

Pirms praktizēt šīs apmācības skriptu, jums ir jāveic šādi uzdevumi.

  1. Instalējiet Django versiju 3+ Ubuntu 20+ (vēlams)
  2. Izveidojiet Django projektu
  3. 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 queryapp

Palaidiet š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āju

Pievienojiet 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ēšana
no 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 queryapp

Palaidiet 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ēt

Mainī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 moduli
no 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



<br>Django QuerySet apmācība<br>



Produkta meklēšana



% csrf_token%
Meklēt produktu:







% produktam objekta_listā%



% endfor%
IDNosaukumsZīmolsCena
produkts.id produkts.nosaukums produkts.Zīmolsstyle = "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 moduli
no 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 moduli
no 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.

Kā mainīt peles rādītāja un kursora izmēru, krāsu un shēmu operētājsistēmā Windows 10
Peles rādītājs un kursors operētājsistēmā Windows 10 ir ļoti svarīgi operētājsistēmas aspekti. To var teikt arī par citām operētājsistēmām, tāpēc pati...
Bezmaksas un atvērtā koda spēļu dzinēji Linux spēļu izstrādei
Šis raksts aptvers bezmaksas un atvērtā koda spēļu motoru sarakstu, kurus var izmantot, lai izstrādātu 2D un 3D spēles Linux. Šādu spēļu dzinēju ir da...
Tomb Raider for Linux apmācība
Tomb Raider ēna ir divpadsmitais papildinājums Tomb Raider sērijai - darbības piedzīvojumu spēļu franšīzei, kuru izveidoja Eidos Montreal. Spēli gan k...