So verwenden Sie Queryset in Django

So verwenden Sie Queryset in Django
Die meisten Webanwendungen werden jetzt mit der Datenbank implementiert. Queryset wird in der Django -Anwendung verwendet, um Datensätze abzurufen, indem die Datenbanktabelle filteriert oder geschnitten oder bestellt wird, ohne die Originaldaten zu ändern. Das Modell verwendete Django, um die Tabelle in der Datenbank zu erstellen. Das Wissen über die Verwendung des Modells in Django ist also notwendig, um die Verwendung von Queryset zu verstehen. Die Hauptfunktion des Querysets besteht darin, die Datensätze von Datenbanktabellen zu iterieren, indem sie in SQL -Abfragen konvertiert werden. Es kann von der Python -Befehlszeile oder durch 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 erläutert.

Voraussetzungen:

Bevor Sie das Skript dieses Tutorials üben, müssen Sie die folgenden Aufgaben erledigen.

  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 mit dem Namen zu erstellen QueryApp.

$ python3 verwalten.py startApp queryApp

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

$ python3 verwalten.Py erzeugt

Fügen Sie den App -Namen in die hinzu Installed_app Teil der Einstellungen.py Datei.

Installed_apps = [

'QueryApp'
]

Erstellen Sie einen Ordner mit dem Namen Vorlagen in der QueryApp Ordner und setzen Sie die Vorlage Ort der App in der Vorlagen Teil der 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 der QueryApp Ordner und fügen Sie das folgende Skript hinzu, um die Struktur von zu definieren Produkte Tische. Produkt Die Klasse wird definiert, um eine Tabelle mit dem Namen zu erstellen Produkte mit Name, Typ, Marke, Und Preis Felder. Hier, Name, Typ, Und Marke Felder speichern Charakterdaten und die Preis Das Feld speichert die Ganzzahldaten.

Modelle.py

# Modulmodul importieren
von django.DB -Importmodelle
# Klasse definieren, um Produkttabelle zu erstellen
Klassenprodukt (Modelle.Modell):
Name = Modelle.Charfield (max_length = 100)
Typ = Modelle.Charfield (max_length = 30)
Brand = Modelle.Charfield (max_length = 50)
Preis = Modelle.Integerfield ()

Leiten Sie die Makemigrationen Befehl zum Erstellen einer neuen Migration basierend auf den von den Modellen vorgenommenen Änderungen.

$ python3 verwalten.PY Makemigrations QueryApp

Leiten Sie die Wandern Befehl zum Ausführen der SQL -Befehle und zum Erstellen aller Tabellen in der Datenbank, die in der definiert sind Modelle.py Datei.

$ python3 verwalten.py migrieren

Ändern Sie den Inhalt der Administrator.py Datei mit dem folgenden Inhalt. Hier, Die Produktclas der ModelleS wird durch die Verwendung der registriert registrieren() Methode zur Anzeige der Anzeige Produkte Tabellen im Django Administration Dashboard.

Administrator.py

# Admin -Modul importieren
von django.Import Administrator beibringen
# Produktmodell importieren
aus .Modelle importieren Produkt
# Produktmodell registrieren
Administrator.Grundstück.Produkt registrieren)

Erstellen Sie eine Vorlagendatei mit dem Namen Produktliste.html in der QueryApp/Vorlagen/ mit dem folgenden Skript. In diesem Skript werden alle Daten von angezeigt Produkte Tabelle in tabellarischer Form mit einem Suchfeld. Der Benutzer kann die bestimmten Datensätze aus der Produkttabelle mit dem Suchformular durchsuchen. für Die Schleife wird im Skript verwendet, um die aus dem übergebenen Daten zu iterieren Ansichten.py Datei.

Produktliste.html



<br>Django Queryset Tutorial<br>



Produkt suchen



% csrf_token %
Suchprodukt:







% für Produkt in Object_List %



% endfor %
AUSWEISNameMarkePreis
Produkt.Ausweis Produkt.Name Produkt.Markestyle = "text-align: rechts"> $ Produkt.Preis



Ändern Sie den Inhalt der Ansichten.py Datei mit dem folgenden Skript. Das Modell und die Vorlagennamen sind in der definiert Produktliste Klasse. get_queryset () Die Methode der Klasse wird im Skript definiert, um die Daten basierend auf dem vom Suchfeld der Vorlage eingereichten Inhalt zu filtern. Produkt.Objekte.alle() Methode gibt alle Aufzeichnungen der zurück Produkte Tisch. Anfrage.ERHALTEN.Schlüssel() Die Methode wird im Skript verwendet, um zu überprüfen, ob Daten über das Suchformular gesendet werden. Wenn diese Methode zurückgibt WAHR, dann ist die Anfrage.ERHALTEN.Get ('SRC') Die Methode wird verwendet, um zu überprüfen, ob der eingereichte 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 zur Filterung der Daten basierend auf dem verwendet Marke Und Typ Felder aus dem Produkte Tisch.

Ansichten.py

# ListView -Modul importieren
von django.Ansichten.Generisches Import -Listenansicht
# Produktmodul importieren
aus .Modelle importieren Produkt
# Q -Modul importieren
von django.db.Modelle importieren q
# Klasse für Abfragen von Daten definieren
Class ProductList (ListView):
# Modell definieren
Modell = Produkt
# Vorlage definieren
template_name = 'productList.html '
def get_queryset (self):
# Setzen Sie den Standardabfragesatz
queryset = Produkt.Objekte.alle()
# Überprüfen Sie, ob der Formularwert eingereicht wird oder nicht
Wenn Selbst.Anfrage.ERHALTEN.Schlüssel():
# Überprüfen Sie das Keyword von Suchern
Wenn Selbst.Anfrage.ERHALTEN.Get ('SRC') != ":
keyword = self.Anfrage.ERHALTEN.Get ('SRC')
# Legen Sie den Abfragesatz basierend auf dem Suchschlüsselwort fest
queryset = Produkt.Objekte.Filter (Q (Brand = Keyword.Kapitalisieren ()) | Q (Typ = Schlüsselwort.profitieren()))
Return Queryset zurückgeben

Ändern Sie den Inhalt der URLs.py Datei mit dem folgenden Skript. Im Skript das ''SearchPro/'Pfad wird definiert, um das aufzurufen Produktliste.As_view () Methode, mit der alle Daten und die gefilterten Daten der gesendet werden Produkte Tabelle zur Vorlagendatei.

URLs.py

# Admin -Modul importieren
von django.Import Administrator beibringen
# Pfad importieren und Modul einschließen
von django.URLS -Importweg
# Suchbearbeitungsmodul importieren
von queryApp.Ansichten Import ProductList
urlpatterns = [
# Definieren Sie den Pfad für den Administrator
Pfad ('Admin/', Administrator.Grundstück.URLs),
# Definieren Sie den Weg zum Suchen von Produkten
Path ('SearchPro/', Produktliste.As_view ()),

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

Öffnen Sie die Seite Django Administration und fügen Sie einige Datensätze in die hinzu Produkte Tabelle, um den QuerySet dann aufzutragen. Hier wurden fünf Datensätze eingefügt.

Alle Datensätze der Produkte mit dem Suchfeld werden im Browser angezeigt, nachdem die folgende URL ausgeführt wurde.

http: // localhost: 8000/searchPro


Alle Shampoo -Produkte, die angezeigt werden, wenn der Produkttyp 'Shampoo'wird im Suchfeld durchsucht.

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

Abschluss:

Die Art der Filterung der Daten einer einfachen Datenbanktabelle durch Verwendung von QuerySet hat in diesem Tutorial erläutert. Die Daten können auf unterschiedliche Weise gefiltert werden. Die Leser verstehen verstehen, dass ein QuerySet zum Filtern oder Durchsuchen von Daten im Browser nach dem Lesen dieses Tutorials ist.