Django

Jak używać queryset w django

Jak używać queryset w django
Większość aplikacji internetowych jest teraz zaimplementowanych z bazą danych. queryset jest używany w aplikacji Django do pobierania rekordów poprzez filtrowanie, krojenie lub porządkowanie tabeli bazy danych bez zmiany oryginalnych danych. Model wykorzystał Django do stworzenia tabeli w bazie danych. Tak więc wiedza na temat korzystania z modelu w Django jest niezbędna do zrozumienia użycia queryset. Główną funkcją zestawu zapytań jest iteracja rekordów tabel bazy danych poprzez konwersję ich na zapytania SQL. Można go użyć z wiersza poleceń Pythona lub pisząc skrypt Pythona do wyświetlania danych wyjściowych przeglądarki. W tym samouczku wyjaśniono wykorzystanie queryset do pobierania danych z tabeli bazy danych na różne sposoby.

Wymagania wstępne:

Zanim zaczniesz ćwiczyć skrypt tego samouczka, musisz wykonać następujące zadania.

  1. Zainstaluj Django w wersji 3+ na Ubuntu 20+ (najlepiej)
  2. Utwórz projekt Djangogo
  3. Uruchom serwer Django, aby sprawdzić, czy serwer działa poprawnie, czy nie.

Skonfiguruj aplikację Django:

Uruchom następujące polecenie, aby utworzyć aplikację Django o nazwie aplikacja kwerendy.

$ python3 zarządzaj.py startapp queryapp

Uruchom następujące polecenie, aby utworzyć użytkownika umożliwiającego dostęp do bazy danych Django. Jeśli wcześniej utworzyłeś użytkownika, nie musisz uruchamiać polecenia.

$ python3 zarządzaj.py tworzy superużytkownik

Dodaj nazwę aplikacji w INSTALLED_APP część ustawienia.py plik.

INSTALLED_APPS = [

„aplikacja do zapytania”
]

Utwórz folder o nazwie szablony w środku aplikacja kwerendy folder i ustaw szablon lokalizacja aplikacji w SZABLONY część ustawienia.py plik.

SZABLONY = [

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

Utwórz model dla tabeli bazy danych:

Otworzyć modele.py plik z aplikacja kwerendy folder i dodaj następujący skrypt, aby zdefiniować strukturę produkty stoły. Produkt klasa jest zdefiniowana w celu utworzenia tabeli o nazwie produkty z nazwa, typ, marka, i Cena £ pola. Tutaj, nazwa, typ, i Marka pola będą przechowywać dane znakowe, a Cena £ pole będzie przechowywać dane całkowite.

modele.py

# Moduł importu modeli
z django.modele importu db
# Zdefiniuj klasę, aby utworzyć tabelę produktów
klasa Produkt (modele).Model):
nazwa = modele.Pole znaku(max_length=100)
typ = modele.Pole znaku(max_length=30)
marka = modele.Pole znaku(max_length=50)
cena = modele.Pole_całkowite()

Uruchom makemigracje polecenie do utworzenia nowej migracji na podstawie zmian wprowadzonych przez modele.

$ python3 zarządzaj.py makemigrations queryapp

Uruchom migrować polecenie do wykonywania poleceń SQL i tworzenia wszystkich tabel w bazie danych, które są zdefiniowane w modele.py plik.

$ python3 zarządzaj.py migracja

Zmodyfikuj zawartość Administrator.py plik o następującej treści. Tutaj, klasa produktów modelis jest rejestrowany za pomocą zarejestrować() metoda wyświetlania produkty tabele w panelu administracyjnym Django.

Administrator.py

# Importuj moduł administracyjny
z django.admin importu wkładów
# Importuj model produktu
z .Modele importują produkt
# Zarejestruj model produktu
Administrator.teren.rejestr (produkt)

Utwórz plik szablonu o nazwie Lista produktów.html w środku zapytanie/szablony/ z następującym skryptem. Ten skrypt wyświetli wszystkie dane z produkty tabela w formie tabelarycznej z polem wyszukiwania. Użytkownik będzie mógł wyszukiwać poszczególne rekordy z tabeli produktów za pomocą formularza wyszukiwania. dla pętla jest używana w skrypcie do iteracji danych przekazywanych z wyświetlenia.py plik.

Lista produktów.html



<br>Samouczek Django QuerySet<br>



Wyszukiwanie produktu



% csrf_token %
Wyszukaj produkt:







% dla produktu w object_list %



% endfor %
IDNazwaMarkaCena £
produkt.ID produkt.Nazwa produkt.Markastyle="text-align:right">$produkt.Cena £



Zmodyfikuj zawartość wyświetlenia.py plik z następującym skryptem. Nazwy modeli i szablonów są zdefiniowane w Lista produktów klasa. get_queryset() metoda klasy jest zdefiniowana w skrypcie w celu filtrowania danych na podstawie treści przesłanej przez pole wyszukiwania szablonu. Produkt.przedmioty.wszystko() metoda zwraca wszystkie rekordy produkty stół. żądanie.OTRZYMAĆ.Klucze() Metoda jest używana w skrypcie do sprawdzenia, czy dane są przesyłane przez formularz wyszukiwania. Jeśli ta metoda zwróci prawdziwe, a później żądanie.OTRZYMAĆ.pobierz ('źródło') metoda służy do sprawdzenia, czy przesłana wartość jest pusta, czy nie. Jeśli ta metoda zwróci niepustą wartość, to wartość zostanie zapisana w zmiennej, słowo kluczowe, i będzie używany do filtrowania danych na podstawie Marka i rodzaj pola z produkty stół.

wyświetlenia.py

# Importuj moduł ListView
z django.wyświetlenia.ogólny import ListView
# Importuj moduł produktu
z .Modele importują produkt
# Importuj moduł Q
z django.db.modele importują Q
# Zdefiniuj klasę do zapytań o dane
klasa ProductList(ListView):
# Zdefiniuj model
model = Produkt
# Zdefiniuj szablon
nazwa_szablonu = 'ListaProduktów.html'
def get_queryset(self):
# Ustaw domyślny zestaw zapytań
queryset = Produkt.przedmioty.wszystko()
# Sprawdź, czy wartość formularza została przesłana, czy nie
jeśli ja.żądanie.OTRZYMAĆ.Klucze():
# Sprawdź słowo kluczowe wyszukiwania
jeśli ja.żądanie.OTRZYMAĆ.pobierz ('źródło') != ":
słowo kluczowe = self.żądanie.OTRZYMAĆ.pobierz ('źródło')
# Ustaw zestaw zapytań na podstawie słowa kluczowego wyszukiwania
queryset = Produkt.przedmioty.filtr(P(marka=słowo kluczowe.wielkie litery() | Q(typ=słowo kluczowe.skapitalizować()))
zwróć zestaw zapytań

Zmodyfikuj zawartość adresy URL.py plik z następującym skryptem. W skrypcie 'searchPro/' ścieżka jest zdefiniowana do wywołania Lista produktów.as_view() metoda, która wyśle ​​wszystkie dane i przefiltrowane dane produkty tabela do pliku szablonu.

adresy URL.py

# Importuj moduł administracyjny
z django.admin importu wkładów
# Importuj ścieżkę i dołącz moduł
z django.Ścieżka importu adresów URL
# Importuj moduł SearchEmployee
z queryapp.widoki importuj listę produktów
wzory url = [
# Zdefiniuj ścieżkę dla administratora
ścieżka('admin/', admin.teren.adresy URL),
# Zdefiniuj ścieżkę do wyszukiwania produktu
path('searchPro/', Lista Produktów.as_view()),

Dodaj rekordy do tabeli:

Otwórz stronę Administracja Django i dodaj kilka rekordów do produkty tabela do zastosowania zestawu zapytań w tym momencie. Tutaj wstawiono pięć rekordów.

Wszystkie rekordy produktów z polem wyszukiwania zostaną wyświetlone w przeglądarce po wykonaniu następującego adresu URL.

http://localhost:8000/searchPro


Wszystkie produkty szamponowe wyświetlane, jeśli typ produktu „szampon' będzie wyszukiwany w polu wyszukiwania.

Produkty mleczne w proszku z Świeże marka będzie wyświetlana, jeśli marka produktu, 'świeży' będzie wyszukiwany w polu wyszukiwania.

Wniosek:

Sposób filtrowania danych prostej tabeli bazy danych za pomocą queryset został wyjaśniony w tym samouczku. Dane można filtrować na różne sposoby. Czytelnicy zrozumieją, jak używać queryset do filtrowania lub wyszukiwania danych w przeglądarce po przeczytaniu tego samouczka.

Gry Jak korzystać z GameConqueror Cheat Engine w systemie Linux
Jak korzystać z GameConqueror Cheat Engine w systemie Linux
Artykuł zawiera przewodnik dotyczący korzystania z silnika oszukującego GameConqueror w systemie Linux. Wielu użytkowników, którzy grają w gry w syste...
Gry Najlepsze emulatory konsoli do gier dla systemu Linux
Najlepsze emulatory konsoli do gier dla systemu Linux
W tym artykule wymienimy popularne oprogramowanie do emulacji konsoli do gier dostępne dla systemu Linux. Emulacja to warstwa kompatybilności oprogram...
Gry Najlepsze dystrybucje Linuksa do gier w 2021 r
Najlepsze dystrybucje Linuksa do gier w 2021 r
System operacyjny Linux przeszedł długą drogę od pierwotnego, prostego, serwerowego wyglądu. Ten system operacyjny znacznie się poprawił w ostatnich l...