Django

Come costruire una ricerca di base per un sito Django?

Come costruire una ricerca di base per un sito Django?

Un particolare contenuto di qualsiasi sito viene normalmente recuperato dagli utenti tramite la ricerca di Google. Tuttavia, se questa opzione di ricerca è implementata sul sito Web, gli utenti possono facilmente trovare il contenuto desiderato all'interno del sito senza utilizzare la ricerca di Google... Un altro vantaggio dell'aggiunta di un'opzione di ricerca all'interno di un sito Web è che lo sviluppatore può gestire correttamente l'output della ricerca. Ciò significa che può controllare quale contenuto del sito verrà visualizzato o meno. Questo tutorial mostrerà il processo di implementazione della ricerca di base nel sito Django.

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 searchapp.

$ python3 gestire.py startapp searchapp

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

$ python3 gestire.py createsuperuser

Aggiungi il nome dell'app nella parte INSTALLED_APP delle impostazioni.py file.

INSTALLATE_APPS = [

'app di ricerca'
]

Crea una cartella denominata modelli all'interno della cartella searchapp e imposta la posizione del modello dell'app nella parte TEMPLATES delle impostazioni.py file.

MODELLI = [

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

Crea modelli:

Modifica i modelli.py con il seguente script. Qui sono state definite due classi per creare due tabelle relazionali denominate booktypes e books. Il campo del tipo della tabella dei libri è una chiave esterna che apparirà dalla tabella dei tipi di libri.

Modelli.pi

# Importa i moduli necessari
da django.modelli di importazione db
da django.gli URL importano al contrario
# Crea modello per tipo di libro
classe Booktype (modelli.Modello):
btype = modelli.CharField(max_length=100, unico=vero)
classe Meta:
ordering=('btype',)
# Crea modello gor book
Libro di classe (modelli.Modello):
book_name = modelli.CharField(max_length=150)
nome_autore = modelle.CharField(max_length=150)
tipo = modelli.ForeignKey(Booktype, on_delete=models.CASCATA)
prezzo = modelli.Campo mobile()
pubblicazione = modelli.CharField(max_length=100)
classe Meta:
ordering=('nome_libro',)
def __str__(self):
tornare da sé.nome_libro
def get_url(self):
return reverse('book_detail', args=[self.id])

Crea modelli per la ricerca:

Sono necessari tre file HTML per creare la funzione di ricerca mostrata in questo tutorial. Questi sono book_list.html, book_detail.html e cerca.html. La lista_libro.html visualizzerà tutti i record dalla tabella dei libri. Il libro_dettaglio.html mostrerà i dettagli di un particolare libro. La ricerca.html visualizzerà il risultato della ricerca dopo aver inviato il modulo di ricerca.

lista di libri.html



Lista di libri










% se tipo % tipo.name % else % Elenco di libri % endif %











% per x nel libro %

X.nome_libro


di x.nome dell'autore


$x.prezzo




% endfor %



book_detail.html





libro.nome_libro






libro.nome_libro




Autore: libro.nome dell'autore


Tipo: tipo


Pubblicazione: libro.pubblicazione


Prezzo: $libro.prezzo







ricerca.html



Risultato della ricerca









% se query %


% con risultati.conta come total_results %
Trovato total_results risultato total_results|pluralize
% termina con %


% per c nei risultati %

c.nome_libro


c.nome dell'autore


% vuoto %

nessun risultato trovato.


% endfor %
% finisci se %






Crea funzioni di visualizzazione:

Modifica le visualizzazioni.py con il seguente script. Nello script sono state definite tre funzioni. La funzione book_list() visualizzerà la book_list.file html. La funzione book_detail() visualizzerà il book_detail.html. La funzione search() cercherà i record in base ai dati inviati dal modulo di ricerca e visualizzerà il risultato nella ricerca.html.

visualizzazioni.pi

# Importa i moduli necessari
da django.scorciatoie importare rendering, get_object_or_404
a partire dal .i modelli importano Book, Booktype
da django.db.modelli importati Q
# Definisci la funzione per visualizzare tutti i libri
def book_list(richiesta):
libro = libro.oggetti.tutti()
return render(richiesta, 'lista_libro.html', 'libro': libro )
# Definisci la funzione per visualizzare il particolare libro
def book_detail(richiesta,id):
libro = get_object_or_404(Libro, id=id)
tipi = tipo di libro.oggetti.tutti()
t = tipi.get(id=libro.genere.id)
return render(richiesta, 'book_detail.html', 'book': book, 'type': t.btype)
# Definisci la funzione per cercare il libro
def ricerca (richiesta):
risultati = []
se richiesta.metodo == "OTTIENI":
query = richiesta.OTTENERE.get('cerca')
se domanda == ":
query = 'Nessuno'
risultati = Libro.oggetti.filter(Q(nome_libro__icontains=query) | Q(nome_autore__icontains=query) | Q(price__icontains=query) )
return render(richiesta, 'cerca.html', 'query': query, 'risultati': risultati)

Imposta percorsi per chiamare le funzioni di visualizzazione:

Modifica gli URL.py del progetto Django con il seguente script. Nello script sono stati definiti quattro percorsi. Il percorso 'admin/' viene utilizzato per aprire il dashboard di amministrazione di Django. Il percorso vuoto(") è usato per chiamare la funzione book_list(). '/' percorso viene utilizzato per chiamare la funzione book_detail(). Il percorso 'search/' viene utilizzato per chiamare la funzione search().

URL.pi

# Importa modulo di amministrazione
da django.amministratore di importazione contributi
# Modulo percorso di importazione
da django.percorso di importazione degli URL
# Importa vista
dalle visualizzazioni di importazione di searchapp
# Definisci percorsi
patternurl = [
percorso('admin/', admin.luogo.URL),
percorso(", viste.book_list, name='book_list'),
percorso('/', viste.book_detail, name='book_detail'),
percorso('ricerca/', viste.cerca, nome='cerca'),
]

Esegui l'app dal browser:

Esegui il seguente comando per eseguire il server Django.

$ python3 gestire.py runserver

Esegui il seguente URL da qualsiasi browser per visualizzare l'elenco dei libri dalla tabella.

http://localhost:8000

Se l'utente fa clic sul collegamento "PHP e MySQL per siti Web dinamici", i dettagli di questo libro verranno visualizzati nel browser.

Se l'utente cerca la parola fisica nel browser, il seguente risultato di ricerca verrà visualizzato nel browser.

Conclusione:

In questo tutorial è stata implementata un'app Django con l'opzione di ricerca di base utilizzando le tabelle del database. I nuovi sviluppatori Django saranno in grado di implementare la funzione di ricerca nel loro sito Web dopo aver letto questo tutorial.

Aggiungi i gesti del mouse a Windows 10 utilizzando questi strumenti gratuiti
Negli ultimi anni computer e sistemi operativi si sono notevolmente evoluti greatly. C'è stato un tempo in cui gli utenti dovevano usare i comandi per...
Controlla e gestisci il movimento del mouse tra più monitor in Windows 10
Gestore mouse con doppio display ti consente di controllare e configurare il movimento del mouse tra più monitor, rallentando i suoi movimenti vicino ...
WinMouse ti consente di personalizzare e migliorare il movimento del puntatore del mouse su PC Windows
Se vuoi migliorare le funzioni predefinite del puntatore del mouse, usa freeware WinMouse. Aggiunge più funzionalità per aiutarti a ottenere il massim...