Django

Cum se folosește queryset în django

Cum se folosește queryset în django
Majoritatea aplicațiilor web sunt acum implementate cu baza de date. queryset este utilizat în aplicația Django pentru a prelua înregistrări prin filtrare sau feliere sau comandarea tabelului bazei de date fără a modifica datele originale. Modelul a folosit Django pentru a crea tabelul în baza de date. Deci, cunoașterea utilizării modelului în Django este necesară pentru a înțelege utilizarea queryset. Funcția principală a queryset-ului este de a itera înregistrările tabelelor bazei de date, convertindu-le în interogări SQL. Poate fi folosit din linia de comandă python sau scriind scriptul python pentru a afișa ieșirea browserului. Utilizările queryset pentru recuperarea datelor dintr-un tabel de baze de date în diferite moduri au fost explicate în acest tutorial.

Condiții preliminare:

Înainte de a practica scriptul acestui tutorial, trebuie să finalizați următoarele sarcini.

  1. Instalați versiunea Django 3+ pe Ubuntu 20+ (de preferință)
  2. Creați un proiect Django
  3. Rulați serverul Django pentru a verifica dacă serverul funcționează corect sau nu.

Configurați o aplicație Django:

Rulați următoarea comandă pentru a crea o aplicație Django numită queryapp.

$ python3 gestionează.py startapp queryapp

Rulați următoarea comandă pentru a crea utilizatorul pentru accesarea bazei de date Django. Dacă ați creat utilizatorul anterior, atunci nu este nevoie să executați comanda.

$ python3 gestionează.py creează superutilizator

Adăugați numele aplicației în INSTALLED_APP parte a setări.py fişier.

INSTALLED_APPS = [
..
„queryapp”
]

Creați un folder numit șabloane în interiorul queryapp folder și setați fișierul șablon locația aplicației în Șabloane parte a setări.py fişier.

TEMPLATES = [

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

Creați un model pentru tabelul bazei de date:

Deschide modele.py fișier din queryapp folder și adăugați următorul script pentru a defini structura produse Mese. Produs clasa este definită pentru a crea un tabel numit produse cu numele, tipul, marca, și Preț câmpuri. Aici, nume, tip, și marca câmpurile vor stoca date despre caractere și Preț câmpul va stoca datele întregi.

modele.py

# Modulul Importa modele
din django.modele de import db
# Definiți clasa pentru a crea tabelul de produse
clasa Produs (modele.Model):
nume = modele.CharField (max_length = 100)
tip = modele.CharField (max_length = 30)
marca = modele.CharField (max_length = 50)
pret = modele.IntegerField ()

Rulați makemigrări comanda pentru a crea o nouă migrare pe baza modificărilor făcute de modele.

$ python3 gestionează.py makemigrations queryapp

Rulați migra pentru a executa comenzile SQL și a crea toate tabelele din baza de date care sunt definite în modele.py fişier.

$ python3 gestionează.py migrează

Modificați conținutul fișierului admin.py fișier cu următorul conținut. Aici, clasa produsului modelelors este înregistrat utilizând Inregistreaza-te() metoda de afișare a produse tabele în tabloul de bord al administrației Django.

admin.py

# Importați modulul de administrare
din django.admin import import
# Importați modelul produsului
din .modele import Produs
# Înregistrați modelul produsului
admin.site.înregistrare (Produs)

Creați un fișier șablon numit lista de produse.html în interiorul queryapp / șabloane / cu următorul script. Acest script va afișa toate datele din produse tabel sub formă de tabel cu o casetă de căutare. Utilizatorul va putea căuta înregistrările particulare din tabelul de produse utilizând formularul de căutare. pentru bucla este utilizată în script pentru a itera datele transmise de vederi.py fişier.

lista de produse.html



<br>Tutorial Django QuerySet<br>



Căutarea produsului



% csrf_token%
Căutare produs:







% pentru produsul din object_list%



% endfor%
IDNumeMarcaPreț
produs.id produs.Nume produs.marcastyle = "text-align: right"> $ produs.Preț



Modificați conținutul fișierului vederi.py fișier cu următorul script. Numele modelului și șablonului sunt definite în Lista de produse clasă. get_queryset () metoda clasei este definită în script pentru a filtra datele pe baza conținutului trimis de caseta de căutare a șablonului. Produs.obiecte.toate() metoda returnează toate înregistrările fișierului produse masa. cerere.OBȚINE.chei () metoda este utilizată în script pentru a verifica dacă datele sunt trimise prin formularul de căutare. Dacă această metodă revine Adevărat, apoi cerere.OBȚINE.get ('src') metoda este utilizată pentru a verifica dacă valoarea trimisă este goală sau nu. Dacă această metodă returnează o valoare care nu este goală, atunci valoarea va fi stocată în variabilă, cuvânt cheie, și va fi utilizat pentru filtrarea datelor pe baza fișierului marca și tip câmpuri din produse masa.

vederi.py

# Importați modulul ListView
din django.vederi.import generic ListView
# Modulul Importați produsul
din .modele import Produs
# Importați modulul Q
din django.db.modele import Q
# Definiți clasa pentru interogarea datelor
clasă ProductList (ListView):
# Definiți modelul
model = Produs
# Definiți șablonul
template_name = 'ProductList.html '
def get_queryset (self):
# Setați setul de interogare implicit
queryset = Produs.obiecte.toate()
# Verificați dacă valoarea formularului este trimisă sau nu
dacă eul.cerere.OBȚINE.tastele ():
# Verificați cuvântul cheie de căutare
dacă eul.cerere.OBȚINE.get ('src') != ":
cuvânt cheie = sine.cerere.OBȚINE.get ('src')
# Setați setul de interogări pe baza cuvântului cheie de căutare
queryset = Produs.obiecte.filtru (Q (marca = cuvânt cheie.capitalizați ()) | Q (tip = cuvânt cheie.valorifica()))
returnează setul de căutare

Modificați conținutul fișierului urluri.py fișier cu următorul script. În scenariu, „searchPro/ 'calea este definită pentru a apela Lista de produse.as_view () metoda care va trimite toate datele și datele filtrate ale produse tabel la fișierul șablon.

urluri.py

# Importați modulul de administrare
din django.admin import import
# Importați calea și includeți modulul
din django.calea de import a adreselor URL
# Importați modulul SearchEmployee
din queryapp.vizualizări import ProductList
urlpatterns = [
# Definiți calea pentru administrator
cale ('admin /', admin.site.urluri),
# Definiți calea către produsul de căutare
cale ('searchPro /', ProductList.as_view ()),

Adăugați înregistrări în tabel:

Deschideți pagina de administrare Django și adăugați câteva înregistrări în produse tabel pentru a aplica setul queryset pe atunci. Aici au fost inserate cinci înregistrări.

Toate înregistrările produselor cu caseta de căutare vor fi afișate în browser după executarea următoarei adrese URL.

http: // localhost: 8000 / searchPro


Toate produsele de șampon afișate dacă tipul de produs, "şampon'va fi căutat în caseta de căutare.

Produsele din lapte praf de proaspătul marca va fi afișată dacă marca produsului, 'proaspăt'va fi căutat în caseta de căutare.

Concluzie:

Modul de filtrare a datelor dintr-un tabel simplu de baze de date utilizând queryset a explicat în acest tutorial. Datele pot fi filtrate în diferite moduri. Cititorii vor înțelege utilizarea unui queryset pentru a filtra sau căuta date în browser după ce a citit acest tutorial.

Battle For Wesnoth 1.13.6 Development Released
Battle For Wesnoth 1.13.6 released last month, is the sixth development release in the 1.13.x series and it delivers a number of improvements, most no...
Cum se instalează League Of Legends pe Ubuntu 14.04
Dacă ești fan al League of Legends, atunci aceasta este o oportunitate pentru tine de a testa rula League of Legends. Rețineți că LOL este acceptat pe...
Instalați cel mai recent joc de strategie OpenRA pe Ubuntu Linux
OpenRA este un motor de jocuri de strategie în timp real Libre / Free care recreează primele jocuri Westwood, cum ar fi clasicul Command & Conquer: Re...