Django

So verwenden Sie das Abfrageset in Django

So verwenden Sie das Abfrageset in Django
Die meisten Webanwendungen sind jetzt mit der Datenbank implementiert. queryset wird in der Django-Anwendung verwendet, um Datensätze durch Filtern oder Slicen oder Ordnen der Datenbanktabelle abzurufen, ohne die Originaldaten zu ändern. Das Modell verwendete Django, um die Tabelle in der Datenbank zu erstellen. Daher ist die Kenntnis der Verwendung des Modells in Django erforderlich, um die Verwendung von Queryset zu verstehen. Die Hauptfunktion des Abfragesets besteht darin, die Datensätze von Datenbanktabellen zu iterieren, indem sie in SQL-Abfragen umgewandelt werden. Es kann über die Python-Befehlszeile oder durch das Schreiben des Python-Skripts verwendet werden, um die Ausgabe des Browsers anzuzeigen. Die Verwendung von Queryset zum Abrufen von Daten aus einer Datenbanktabelle auf unterschiedliche Weise wurde in diesem Tutorial erklärt.

Voraussetzungen:

Bevor Sie das Skript 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:

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

$ python3 verwalten.py startapp queryapp

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

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

INSTALLED_APPS = [

'Abfrageapp'
]

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

VORLAGEN = [

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

Erstellen Sie ein Modell für die Datenbanktabelle:

Öffne das Modelle.py Datei aus dem Abfrageapp Ordner und fügen Sie das folgende Skript hinzu, um die Struktur von . zu definieren Produkte Tabellen. Produkt Klasse ist definiert, um eine Tabelle namens table zu erstellen Produkte mit Name, Typ, Marke, und Preis Felder. Hier, Name, Typ, und Marke Felder speichern Zeichendaten und die and Preis Feld speichert die ganzzahligen Daten.

Modelle.py

# Modul Importieren von Modellen
von django.DB-Importmodelle
# Klasse definieren, um eine Produkttabelle zu erstellen
Klasse Produkt (Modelle).Modell):
Name = Modelle.CharField(max_length=100)
Typ = Modelle.CharField(max_length=30)
Marke = Modelle.CharField(max_length=50)
Preis = Modelle.IntegerField()

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

$ python3 verwalten.py makemigrations queryapp

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, die Produktklasse der Modelles wird mit Hilfe der registriert registrieren() Methode zum Anzeigen der Produkte Tabellen im Django-Administrations-Dashboard.

Administrator.py

# Admin-Modul importieren
von django.contrib import admin
# Produktmodell importieren
von .Modelle importieren Produkt
# Produktmodell registrieren
Administrator.Seite? ˅.Produkt registrieren)

Erstellen Sie eine Vorlagendatei mit dem Namen Produktliste.html innerhalb der Abfrageapp/Vorlagen/ mit folgendem Skript. Dieses Skript zeigt alle Daten von Produkte Tabelle in tabellarischer Form mit Suchfeld. Der Benutzer kann die einzelnen Datensätze aus der Produkttabelle durchsuchen, indem er das Suchformular verwendet. zum Schleife wird im Skript verwendet, um die vom it übergebenen Daten zu iterieren Ansichten.py Datei.

Produktliste.html



<br>Django QuerySet-Tutorial<br>



Produkt suchen



% csrf_token %
Produkt suchen:







% für Produkt in object_list %



% endfor %
ICH WÜRDENameMarkePreis
Produkt.Ich würde Produkt.Name Produkt.Markestyle="text-align:right">$product.Preis



Ändern Sie den Inhalt der Ansichten.py Datei mit folgendem Skript. Die Modell- und Vorlagennamen werden im Produktliste Klasse. get_queryset() Methode der Klasse ist im Skript definiert, um die Daten basierend auf dem Inhalt zu filtern, der vom Suchfeld der Vorlage übermittelt wird. Produkt.Objekte.alle() Methode gibt alle Datensätze der Produkte Tabelle. Anfrage.ERHALTEN.Schlüssel() -Methode wird im Skript verwendet, um zu überprüfen, ob Daten vom Suchformular gesendet werden. Wenn diese Methode zurückkehrt wahr, dann ist die Anfrage.ERHALTEN.get('src') Methode wird verwendet, um zu überprüfen, ob der übergebene Wert leer ist oder nicht. Wenn diese Methode einen nicht leeren Wert zurückgibt, wird der Wert in der Variablen gespeichert, Stichwort, und es wird zum Filtern der Daten basierend auf der Marke und Art Felder aus dem Produkte Tabelle.

Ansichten.py

# ListView-Modul importieren
von django.Ansichten.generischer Import ListView
# Modul Produkt importieren
von .Modelle importieren Produkt
# Q-Modul importieren
von django.db.Modelle importieren Q
# Klasse zum Abfragen von Daten definieren
Klasse ProductList(ListView):
# Modell definieren
Modell = Produkt
# Vorlage definieren
template_name = 'Produktliste.html'
def get_queryset(self):
# Legen Sie den Standardabfragesatz fest
Abfragemenge = Produkt.Objekte.alle()
# Überprüfen Sie, ob der Formularwert gesendet wurde oder nicht
wenn selbst.Anfrage.ERHALTEN.Schlüssel():
# Überprüfen Sie das Suchwort
wenn selbst.Anfrage.ERHALTEN.get('src') != ":
Stichwort = selbst.Anfrage.ERHALTEN.get('src')
# Legen Sie den Abfragesatz basierend auf dem Suchbegriff fest
Abfragemenge = Produkt.Objekte.filter(Q(Marke=Schlüsselwort.großschreiben()) | Q(Typ=Schlüsselwort.profitieren()))
Abfragesatz zurückgeben

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

URLs.py

# Admin-Modul importieren
von django.contrib import admin
# Pfad importieren und Modul einbinden
von django.URL-Importpfad
# SearchEmployee-Modul importieren
von queryapp.Ansichten importieren Produktliste
URLmuster = [
# Definiere den Pfad für admin
path('admin/', admin.Seite? ˅.URLs),
# Definieren Sie den Pfad zur Produktsuche
path('searchPro/', Produktliste.as_view()),

Fügen Sie Datensätze in die Tabelle ein:

Öffnen Sie die Django-Administrationsseite und fügen Sie einige Datensätze in die Produkte Tabelle, um das Abfrageset dann anzuwenden. Hier wurden fünf Datensätze eingefügt.

Alle Datensätze der Produkte mit dem Suchfeld werden im Browser nach Ausführen der folgenden URL angezeigt.

http://localhost:8000/searchPro


Alle angezeigten Shampoo-Produkte, wenn der Produkttyp 'Shampoo' wird im Suchfeld gesucht.

Die Milchpulverprodukte von die frische Marke wird angezeigt, wenn die Produktmarke, 'frisch' wird im Suchfeld gesucht.

Fazit:

Wie man die Daten einer einfachen Datenbanktabelle mit Hilfe von queryset filtert, wurde in diesem Tutorial erklärt. Die Daten können auf verschiedene Arten gefiltert werden. Die Leser werden verstehen, wie man einen Abfragesatz zum Filtern oder Suchen von Daten im Browser verwendet, nachdem sie dieses Tutorial gelesen haben.

SuperTuxKart für Linux
SuperTuxKart ist ein großartiger Titel, der entwickelt wurde, um Ihnen das Mario Kart-Erlebnis kostenlos auf Ihrem Linux-System zu bieten. Es ist ziem...
Battle for Wesnoth-Tutorial
The Battle for Wesnoth ist eines der beliebtesten Open-Source-Strategiespiele, die Sie derzeit spielen können. Dieses Spiel befindet sich nicht nur se...
0 A.D. Lernprogramm
Von den vielen Strategiespielen da draußen, 0 A.D. schafft es, sich trotz Open Source als umfassender Titel und sehr tiefgehendes, taktisches Spiel ab...