Wymagania wstępne:
Zanim zaczniesz ćwiczyć skrypt tego samouczka, musisz wykonać następujące zadania.
- Zainstaluj Django w wersji 3+ na Ubuntu 20+ (najlepiej)
- Utwórz projekt Djangogo
- 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 queryappUruchom 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żytkownikDodaj 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 modeliz 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 queryappUruchom 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 migracjaZmodyfikuj 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ł administracyjnyz 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
Samouczek Django QuerySet
Wyszukiwanie produktu
ID | Nazwa | Marka | Cena £ |
---|---|---|---|
produkt.ID | produkt.Nazwa | produkt.Marka | style="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ł ListViewz 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ł administracyjnyz 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.