Python

So filtern Sie Daten in Django?

So filtern Sie Daten in Django?
Es ist eine sehr häufige Anforderung an die Webanwendung, Daten basierend auf dem Interesse des Benutzers auf der Webseite anzuzeigen. Die Suchfunktion der Anwendung macht sie benutzerfreundlicher.  Das Django-Framework verfügt über ein integriertes Filter() Methode zum Filtern von Daten aus den Datenbanktabellen. Eine Tabelle kann viele Datensätze enthalten und manchmal ist die Bestimmung bestimmter Daten erforderlich, basierend auf den bestimmten Kriterien. Diese Aufgabe wird einfacher durch die Verwendung von easier Der Filter() Methode auf unterschiedliche Weise. Wie die Daten aus einer Datenbanktabelle mit der Filtermethode auf vier verschiedene Arten gefiltert werden können, wird in diesem Tutorial besprochen.

Voraussetzungen

Bevor Sie die Beispiele dieses Tutorials üben, müssen Sie die folgenden Aufgaben ausführen:

  1. Installieren Sie die Django-Version 3+ auf Ubuntu 20+ (vorzugsweise)
  2. Erstellen Sie ein Django-Projekt
  3. Führen Sie den Django-Server aus, um zu überprüfen, ob der Server ordnungsgemäß funktioniert oder nicht.

Richten Sie eine Django-App ein

EIN. Führen Sie den folgenden Befehl aus, um eine Django-App namens zu erstellen Filterapp.

$ python3 verwalten.py startapp filterapp

B. Führen Sie den folgenden Befehl aus, um den Benutzer für den Zugriff auf die Django-Datenbank zu erstellen. Wenn Sie den Benutzer zuvor erstellt haben, müssen Sie den Befehl nicht ausführen.

$ python3 verwalten.py erstelltsuperuser

C. Fügen Sie den App-Namen im . hinzu INSTALLED_APP Teil von dem py Datei.

INSTALLED_APPS = [

'filterapp'
]

D. Erstellen Sie einen Ordner mit dem Namen Vorlagen innerhalb der Filterapp Ordner und legen Sie die Vorlage Standort der App im VORLAGEN Teil von dem py Datei.

VORLAGEN = [

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

Erstellen Sie ein Modell für die Datenbanktabelle

Öffne das Modelle.py Datei aus dem Filterapp Ordner und fügen Sie das folgende Skript hinzu, um die Struktur von . zu definieren Angestellte Tabellen. Mitarbeiter Klasse ist definiert, um eine Tabelle namens table zu erstellen Angestellte mit Name, Post, E-Mail, Abteilung, und Beitrittsdatum Felder. Hier, Name, Post, und Abteilung Felder speichern Zeichendaten, die Email Feld speichert die E-Mail-Adresse und die Beitrittsdatum Feld speichert Datumsdaten.

Modelle.py

# Modul Importieren von Modellen
von django.DB-Importmodelle
# Klasse definieren, um eine Mitarbeitertabelle zu erstellen
Klasse Mitarbeiter (Modelle.Modell):
Name = Modelle.CharField(max_length=50)
Beitrag = Modelle.CharField(max_length=40)
E-Mail = Modelle.E-Mail-Feld()
Abteilung = Modelle.CharField(max_length=30)
Joinning_date = Modelle.Datumsfeld()

Führen Sie die machenmigrationen Befehl zum Erstellen einer neuen Migration basierend auf den von den Modellen vorgenommenen Änderungen.

$ python3 verwalten.py makemigrations filterapp

Führen Sie die Wandern Befehl, um die SQL-Befehle auszuführen und alle Tabellen in der Datenbank zu erstellen, die in der Modelle.py Datei.

$ python3 verwalten.py migrieren

Ändern Sie den Inhalt der Administrator.py Datei mit folgendem Inhalt. Hier, der Mitarbeiter Klasse der Modelle wird registriert mit das Register() Methode zum Anzeigen der Aufzeichnungen von Mitarbeitern Tabellen im Django-Administrations-Dashboard.

Administrator.py

# Admin-Modul importieren
von django.contrib import admin
# Mitarbeitermodell importieren
von .Modelle importieren Mitarbeiter
# Mitarbeitermodell registrieren
Administrator.Seite? ˅.registrieren (Mitarbeiter)

Führen Sie die folgende URL aus, um die Django-Admin-Anmeldeseite zu öffnen. Geben Sie den gültigen Benutzernamen und das Passwort ein, um das . zu öffnen Django-Administrations-Dashboard um auf die Datenbanktabellen zuzugreifen.

Fügen Sie zwei oder mehr Mitarbeiterdatensätze ein, um den Filter auf die Daten anzuwenden. Hier werden fünf Datensätze eingefügt.

Erstellen Sie die Suche.html Datei in der Filterapp/Vorlagen/ Ordner mit folgendem Skript. Die Daten aus dem Mitarbeiter Tabelle wird in dieser Vorlagendatei angezeigt. zum Schleife wird verwendet, um den Inhalt der Objektliste Variable, die von der Ansichtsdatei übergeben wird. Das Name, Post, und Abteilung Werte der Angestellte Tabelle wird mit Hilfe der Liste angezeigt.

Suche.html

<br>Django-Filter-Tutorial<br>

Mitarbeiterliste



    % für emp in object_list %

  1. emp.Name ( emp.posten )


    emp.Abteilung Abteilung



  2. % endfor %

Öffne das Ansichten.py Datei aus dem Filterapp Ordner und ändern Sie den Inhalt der Datei mit dem folgenden Skript. Modell- und Vorlagennamen werden im Skript definiert.

Ansichten.py

# ListView-Modul importieren
von django.Ansichten.generischer Import ListView
# Mitarbeitermodul importieren
von .Modelle importieren Mitarbeiter
# Q-Modul importieren
von django.db.Modelle importieren Q
# Klasse zum Filtern von Daten definieren
Klasse SearchEmployee(ListView):
# Modell definieren
Modell = Mitarbeiter
# Vorlage definieren
template_name = 'suchen.html'

Ändern Sie den Inhalt der URLs.py Datei mit folgendem Inhalt. Im Skript wird das 'searchEmp' Pfad ist definiert, um die SucheMitarbeiter.as_view() Methode, die alle Daten und die gefilterten Daten der Angestellte Tabelle zur Vorlagendatei.

URLs.py

# Admin-Modul importieren
von django.contrib import admin
# Pfad importieren und Modul einbinden
von django.URL-Importpfad, einschließen
# SearchEmployee-Modul importieren
von filterapp.Ansichten importieren SearchEmployee
URLmuster = [
# Definiere den Pfad für admin
path('admin/', admin.Seite? ˅.URLs),
# Definieren Sie den Pfad für die Suche
path('searchEmp/', SearchEmployee.as_view()),
]

Die folgende Ausgabe wird angezeigt, ohne dass eine Filterung für die folgende URL angewendet wird.

http://localhost:8000/SerachEmp

Daten durch einfaches Filtern filtern

Fügen Sie die folgende Zeile am Ende des hinzu Ansichten.py Datei zum Filtern der Datensätze der Angestellte Tabelle, in der der Wert der Post Feld ist 'Buchhalter'.

# Grundlegende Filterung anwenden
Abfragemenge = Mitarbeiter.Objekte.filter(post ='Buchhalter')

Die folgende Ausgabe wird angezeigt, nachdem die grundlegende Filterung angewendet wurde.

Daten mit mehreren Feldern filtern

Fügen Sie die folgende Zeile am Ende des hinzu Ansichten.py Datei zum Filtern der Datensätze der Angestellte Tabelle, in der der Wert der Abteilung Feld ist 'HT' und die Email Feld ist '[E-Mail geschützt]'.

# Filtern mit mehreren Feldern anwenden
Abfragemenge = Mitarbeiter.Objekte.filter(abteilung='HR', email='[email protected]')

Die folgende Ausgabe wird angezeigt, nachdem mehrere Filter angewendet wurden.

Daten mit Q-Objekt filtern

Fügen Sie die folgende Zeile am Ende des hinzu Ansichten.py Datei zum Filtern der Datensätze der Angestellte Tabelle, in der der Wert der Post Feld ist 'Manager' oder der Wert des Abteilung Feld ist 'Der Umsatz'.

# Filtern mithilfe von Q-Objekten anwenden
Abfragemenge = Mitarbeiter.Objekte.filter( Q(post='Manager') | Q(department='Sales'))

Die folgende Ausgabe wird angezeigt, nachdem die Q-Objektfilterung angewendet wurde.

Filtern von Daten mithilfe der Filterverkettung

Fügen Sie die folgende Zeile am Ende des hinzu Ansichten.py Datei zum Filtern der Datensätze der Angestellte Tabelle, in der der Wert der Abteilung Feld wird zuerst überprüft und wenn es true zurückgibt, dann wird der Wert des Name Feld wird geprüft.

# Filtern durch Verkettung anwenden
Abfragemenge = Mitarbeiter.Objekte.filter(abteilung='HR').filter(name='Mehrab Hossain')

Die folgende Ausgabe erscheint nach dem Anwenden der Filterverkettung.

Fazit

Die Daten können in Django je nach Anwendungsanforderung auf vielfältige Weise gefiltert werden. In diesem Tutorial wurden vier verschiedene Filtermethoden erklärt, um die Grundlagen der Django-Filterung zu verstehen. Dies sind einfache Filterung, Mehrfachfilterung, Filterung mit Q-Objekt und Filterverkettung.

Kostenlose und Open-Source-Spiele-Engines für die Entwicklung von Linux-Spielen
Dieser Artikel behandelt eine Liste von kostenlosen und Open-Source-Spiele-Engines, die für die Entwicklung von 2D- und 3D-Spielen unter Linux verwend...
Shadow of the Tomb Raider für Linux Tutorial
Shadow of the Tomb Raider ist die zwölfte Erweiterung der Tomb Raider-Reihe – ein Action-Adventure-Franchise von Eidos Montrealdos. Das Spiel wurde vo...
So steigern Sie die FPS unter Linux?
FPS steht für Bilder pro Sekunde. Die Aufgabe von FPS besteht darin, die Bildrate bei Videowiedergaben oder Spielleistungen zu messen. In einfachen Wo...