Django

Como construir uma pesquisa básica para um site Django?

Como construir uma pesquisa básica para um site Django?

Um determinado conteúdo de qualquer site é normalmente recuperado pelos usuários por meio de pesquisa do Google. No entanto, se esta opção de pesquisa for implementada no site, os usuários podem encontrar facilmente o conteúdo desejado dentro do site sem usar a pesquisa do Google ... Outro benefício de adicionar uma opção de pesquisa em um site é que o desenvolvedor pode gerenciar a saída da pesquisa de forma adequada. Isso significa que ele pode controlar qual conteúdo do site aparecerá ou não. Este tutorial irá mostrar o processo de implementação da pesquisa básica no site Django.

Pré-requisitos:

Antes de praticar o script deste tutorial, você deve concluir as seguintes tarefas:

  1. Instale o Django versão 3+ no Ubuntu 20+ (de preferência)
  2. Crie um projeto Django
  3. Execute o servidor Django para verificar se o servidor está funcionando corretamente ou não.

Configure um aplicativo Django:

Execute o seguinte comando para criar um aplicativo Django chamado searchapp.

$ python3 manage.py startapp searchapp

Execute o seguinte comando para criar o usuário para acessar o banco de dados Django. Se você já criou o usuário antes, não precisa executar o comando.

$ python3 manage.py cria superusuário

Adicione o nome do aplicativo na parte INSTALLED_APP das configurações.arquivo py.

INSTALLED_APPS = [

'searchapp'
]

Crie uma pasta chamada templates dentro da pasta searchapp e defina a localização do template do aplicativo na parte MODELOS das configurações.arquivo py.

MODELOS = [

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

Crie modelos:

Modifique os modelos.arquivo py com o seguinte script. Aqui, duas classes foram definidas para criar duas tabelas relacionais chamadas booktypes e books. O campo de tipo da tabela de livros é uma chave estrangeira que aparecerá na tabela de tipos de livros.

modelos.py

# Importe os módulos necessários
de django.modelos de importação db
de django.importação reversa de urls
# Criar modelo gor booktype
classe Booktype (modelos.Modelo):
btype = models.CharField (max_length = 100, unique = True)
classe Meta:
ordenação = ('btype',)
# Crie um modelo de livro
classe Livro (modelos.Modelo):
book_name = modelos.CharField (max_length = 150)
author_name = modelos.CharField (max_length = 150)
type = models.ForeignKey (Booktype, on_delete = models.CASCATA)
preço = modelos.FloatField ()
publicação = modelos.CharField (max_length = 100)
classe Meta:
pedido = ('book_name',)
def __str __ (self):
retornar a si mesmo.book_name
def get_url (self):
return reverse ('book_detail', args = [self.eu ia])

Crie modelos para pesquisa:

Três arquivos HTML são necessários para você criar o recurso de pesquisa mostrado neste tutorial. Estes são book_list.html, book_detail.html e pesquisa.html. The book_list.html irá mostrar todos os registros da tabela de livros. O book_detail.html irá mostrar os detalhes de um livro particular. A pesquisa.html irá mostrar o resultado da pesquisa depois de enviar o formulário de pesquisa.

lista de livros.html



Lista de livros










% if type% type.name % else% Lista de livros % endif%











% para x no livro%

x.book_name


por x.nome do autor


$ x.preço




% endfor%



book_detail.html





livro.book_name






livro.book_name




Autor: livro.nome do autor


Tipo: type


Publicação: livro.publicação


Preço: $ livro.preço







procurar.html



Resultado da pesquisa









% se consulta%


% com resultados.contar como total_results%
Resultado total_results encontrado total_results | pluralize
% endwith%


% para c nos resultados%

c.book_name


c.nome do autor


% vazio %

Nenhum resultado encontrado.


% endfor%
% fim se %






Criar funções de visualização:

Modifique as visualizações.arquivo py com o seguinte script. Três funções foram definidas no script. A função book_list () irá mostrar a book_list.arquivo html. A função book_detail () irá mostrar o book_detail.html. A função search () irá pesquisar os registros com base nos dados enviados pelo formulário de pesquisa e exibir o resultado na pesquisa.html.

Visualizações.py

# Importe os módulos necessários
de django.atalhos import render render, get_object_or_404
a partir de .modelos importar livro, tipo de livro
de django.db.modelos de importação Q
# Definir função para exibir todos os livros
def book_list (solicitação):
livro = livro.objetos.tudo()
return render (request, 'book_list.html ', ' livro ': livro)
# Definir função para exibir o livro particular
def book_detail (solicitação, id):
book = get_object_or_404 (Livro, id = id)
types = Booktype.objetos.tudo()
t = tipos.obter (id = livro.modelo.eu ia)
return render (request, 'book_detail.html ', ' livro ': livro,' tipo ': t.btype)
# Definir função para pesquisar livro
def search (solicitação):
resultados = []
se pedido.método == "GET":
consulta = pedido.OBTER.obter ('pesquisar')
se consulta == ":
consulta = 'Nenhum'
resultados = livro.objetos.filtro (Q (book_name__icontains = query) | Q (author_name__icontains = query) | Q (price__icontains = query))
return render (request, 'search.html ', ' consulta ': consulta,' resultados ': resultados)

Definir caminhos para funções de visualização de chamadas:

Modifique os urls.arquivo py do projeto Django com o seguinte script. Quatro caminhos foram definidos no script. O caminho 'admin /' é usado para abrir o Painel Administrativo do Django. O caminho vazio (") é usado para chamar a função book_list (). '/ 'caminho é usado para chamar a função book_detail (). O caminho 'search /' é usado para chamar a função search ().

urls.py

# Importar módulo de administração
de django.contrib import admin
# Módulo de caminho de importação
de django.caminho de importação de urls
# Vista de importação
de visualizações de importação do searchapp
# Definir caminhos
urlpatterns = [
caminho ('admin /', admin.local.urls),
caminho (", visualizações.book_list, name = 'book_list'),
caminho ('/', visualizações.book_detail, name = 'book_detail'),
caminho ('pesquisa /', visualizações.pesquisar, nome = 'pesquisar'),
]

Execute o aplicativo no navegador:

Execute o seguinte comando para executar o servidor Django.

$ python3 manage.py runserver

Execute o seguinte URL em qualquer navegador para exibir a lista dos livros da tabela.

http: // localhost: 8000

Se o usuário clicar no link “PHP e MySQL para sites dinâmicos da Web”, os detalhes deste livro aparecerão no navegador.

Se o usuário pesquisar a palavra física no navegador, o seguinte resultado da pesquisa será exibido no navegador.

Conclusão:

Um aplicativo Django com a opção de pesquisa básica foi implementado neste tutorial usando tabelas de banco de dados. Os novos desenvolvedores Django serão capazes de implementar o recurso de pesquisa em seu site após ler este tutorial.

Adicione gestos do mouse ao Windows 10 usando essas ferramentas gratuitas
Nos últimos anos, os computadores e sistemas operacionais evoluíram muito. Houve um tempo em que os usuários tinham que usar comandos para navegar pel...
Controle e gerencie o movimento do mouse entre vários monitores no Windows 10
Gerenciador de mouse com tela dupla permite que você controle e configure o movimento do mouse entre vários monitores, diminuindo seus movimentos pert...
WinMouse permite que você personalize e melhore o movimento do ponteiro do mouse no PC com Windows
Se você quiser melhorar as funções padrão do ponteiro do mouse, use um freeware WinMouse. Ele adiciona mais recursos para ajudá-lo a obter o máximo do...