Django

Come usare queryset in django

Come usare queryset in django
La maggior parte delle applicazioni web ora è implementata con il database. queryset viene utilizzato nell'applicazione Django per recuperare i record filtrando o affettando o ordinando la tabella del database senza modificare i dati originali. Il modello ha utilizzato Django per creare la tabella nel database. Quindi, la conoscenza dell'uso del modello in Django è necessaria per comprendere l'uso di queryset. La funzione principale del set di query è iterare i record delle tabelle del database convertendoli in query SQL. Può essere utilizzato dalla riga di comando python o scrivendo lo script python per visualizzare l'output del browser. Gli usi di queryset per recuperare dati da una tabella di database in modi diversi sono stati spiegati in questo tutorial.

Prerequisiti:

Prima di esercitarti con lo script di questo tutorial, devi completare le seguenti attività.

  1. Installa la versione Django 3+ su Ubuntu 20+ (preferibilmente)
  2. Crea un progetto Django
  3. Esegui il server Django per verificare che il server funzioni correttamente o meno.

Configura un'app Django:

Esegui il seguente comando per creare un'app Django denominata queryapp.

$ python3 gestire.py startapp queryapp

Esegui il seguente comando per creare l'utente per l'accesso al database Django. Se hai già creato l'utente, non è necessario eseguire il comando.

$ python3 gestire.py createsuperuser

Aggiungi il nome dell'app in INSTALLATA_APP parte di impostazioni.pi file.

INSTALLATE_APPS = [

'queryapp'
]

Crea una cartella denominata modelli dentro il queryapp cartella e impostare il modello posizione dell'app nel MODELLI parte di impostazioni.pi file.

MODELLI = [

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

Crea un modello per la tabella del database:

Apri il Modelli.pi file dal queryapp cartella e aggiungere il seguente script per definire la struttura di prodotti tavoli. Prodotto la classe è definita per creare una tabella denominata prodotti con nome, tipo, marca, e prezzo campi. Qui, nome, tipo, e marca i campi memorizzeranno i dati dei caratteri e il prezzo il campo memorizzerà i dati interi.

Modelli.pi

# Modulo di importazione dei modelli
da django.modelli di importazione db
# Definisci la classe per creare la tabella dei prodotti
classe Prodotto (modelli.Modello):
nome = modelli.CharField(max_length=100)
tipo = modelli.CharField(max_length=30)
marca = modelli.CharField(max_length=50)
prezzo = modelli.Campo intero()

Corri il migrazioni comando per creare una nuova migrazione in base alle modifiche apportate dai modelli.

$ python3 gestire.py makemigrations queryapp

Corri il migrare comando per eseguire i comandi SQL e creare tutte le tabelle nel database che sono definite nel Modelli.pi file.

$ python3 gestire.py migrare

Modifica il contenuto del of amministratore.pi file con il seguente contenuto. Qui, le classi di prodotto dei modellis è registrato utilizzando il Registrati() metodo per visualizzare il prodotti tabelle nella dashboard di amministrazione di Django.

amministratore.pi

# Importa modulo di amministrazione
da django.amministratore di importazione contributi
# Importa modello prodotto
a partire dal .i modelli importano il prodotto
# Registra il modello del prodotto
amministratore.luogo.registra (prodotto)

Crea un file modello chiamato Elenco prodotti.html dentro il queryapp/modelli/ con il seguente script. Questo script visualizzerà tutti i dati di prodotti tabella in forma tabellare con una casella di ricerca. L'utente sarà in grado di cercare i record particolari dalla tabella dei prodotti utilizzando il modulo di ricerca. per loop viene utilizzato nello script per iterare i dati passati dal passed visualizzazioni.pi file.

Elenco prodotti.html



<br>Django QuerySet Tutorial<br>



Ricerca prodotto



% csrf_token %
Cerca prodotto:







% per prodotto in object_list %



% endfor %
IDNomeMarcaPrezzo
Prodotto.ID Prodotto.nome Prodotto.marcastyle="text-align:right">$prodotto.prezzo



Modifica il contenuto del of visualizzazioni.pi file con il seguente script. I nomi del modello e del modello sono definiti nel Elenco prodotti classe. get_queryset() il metodo della classe è definito nello script per filtrare i dati in base al contenuto inviato dalla casella di ricerca del modello. Prodotto.oggetti.tutti() il metodo restituisce tutti i record di prodotti tavolo. richiesta.OTTENERE.chiavi() il metodo viene utilizzato nello script per verificare che i dati vengano inviati dal modulo di ricerca. Se questo metodo ritorna vero, poi il richiesta.OTTENERE.get('src') il metodo viene utilizzato per verificare che il valore inviato sia vuoto o meno. Se questo metodo restituisce un valore non vuoto, il valore verrà memorizzato nella variabile, parola chiave, e verrà utilizzato per filtrare i dati in base al marca e genere campi da prodotti tavolo.

visualizzazioni.pi

# Importa modulo ListView
da django.visualizzazioni.importazione generica ListView
# Modulo di importazione del prodotto
a partire dal .i modelli importano il prodotto
# Importa modulo Q
da django.db.modelli importati Q
# Definisci la classe per l'interrogazione dei dati
class ElencoProdotti(ListView):
# Definisci il modello
modello = prodotto
# Definisci il modello
template_name = 'elenco prodottiproduct.html'
def get_queryset(self):
# Imposta il set di query predefinito
queryset = Prodotto.oggetti.tutti()
# Controlla che il valore del modulo sia stato inviato o meno
se stesso.richiesta.OTTENERE.chiavi():
# Controlla la parola chiave di ricerca
se stesso.richiesta.OTTENERE.get('src') != ":
parola chiave = sé.richiesta.OTTENERE.get('src')
# Imposta il set di query in base alla parola chiave di ricerca
queryset = Prodotto.oggetti.filter(Q(marca=parola chiave.capitalizzare()) | Q(tipo=parola chiave.capitalizzare()))
restituire queryset query

Modifica il contenuto del of URL.pi file con il seguente script. Nella sceneggiatura, il 'cercaPro/' percorso è definito per chiamare il Elenco prodotti.as_view() metodo che invierà tutti i dati e i dati filtrati del prodotti tabella al file modello.

URL.pi

# Importa modulo di amministrazione
da django.amministratore di importazione contributi
# Importa il percorso e includi il modulo
da django.percorso di importazione degli URL
# Importa modulo Cerca Dipendenti
da queryapp.visualizzazioni importazione Elenco prodotti
patternurl = [
# Definisci il percorso per admin
percorso('admin/', admin.luogo.URL),
# Definisci il percorso per cercare il prodotto
path('searchPro/', ProductList.as_view()),

Aggiungi record nella tabella:

Apri la pagina di amministrazione di Django e aggiungi alcuni record nel prodotti tabella su cui applicare il set di query allora. Qui sono stati inseriti cinque record.

Tutti i record dei prodotti con la casella di ricerca verranno visualizzati nel browser dopo aver eseguito il seguente URL.

http://localhost:8000/searchPro


Tutti i prodotti shampoo visualizzati se il tipo di prodotto, 'shampoo'verrà cercato nella casella di ricerca.

I prodotti a base di latte in polvere di il fresco il marchio verrà visualizzato se il marchio del prodotto, 'fresco'verrà cercato nella casella di ricerca.

Conclusione:

Il modo di filtrare i dati di una semplice tabella di database utilizzando queryset è stato spiegato in questo tutorial. I dati possono essere filtrati in diversi modi. I lettori capiranno l'uso di un set di query per filtrare o cercare dati nel browser dopo aver letto questo tutorial.

Il pulsante centrale del mouse non funziona in Windows 10
Il tasto centrale del mouse ti aiuta a scorrere lunghe pagine web e schermate con molti dati. Se si ferma, finirai per usare la tastiera per lo scorri...
Come cambiare i pulsanti sinistro e destro del mouse su PC Windows 10
È abbastanza normale che tutti i mouse dei computer siano progettati ergonomicamente per gli utenti destrimani. Ma sono disponibili dispositivi mouse ...
Emula i clic del mouse passando il mouse utilizzando il mouse senza clic in Windows 10
L'uso di un mouse o di una tastiera nella postura sbagliata di un uso eccessivo può causare molti problemi di salute, tra cui tensione, sindrome del t...