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

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

Um conteúdo específico de qualquer site é normalmente recuperado pelos usuários através da pesquisa do Google. No entanto, se essa opção de pesquisa for implementada no site, os usuários poderão encontrar facilmente o conteúdo desejado no 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 de pesquisa corretamente. Isso significa que ele pode controlar qual conteúdo do site aparecerá ou não. Este tutorial 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 a versão Django 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 gerencia.Py StartApp SearchApp

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

$ python3 gerencia.py createSuperUser

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

Instalado_apps = [
..
'SearchApp'
]

Crie uma pasta denominada modelos dentro da pasta SearchApp e defina a localização do aplicativo do modelo nos modelos das configurações.arquivo py.

Modelos = [

.. .
'Dirs': ['/home/fahmida/django_pro/SearchApp/modelos'],
.. .
,
]

Crie modelos:

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

modelos.py

# Importar módulos necessários
de Django.Modelos de importação de banco de dados
de Django.URLs importam reverso
# Crie modelo GOR Booktype
Classe Booktype (modelos.Modelo):
btype = modelos.Charfield (max_length = 100, exclusivo = true)
Meta da classe:
ordening = ('btype',)
# Criar modelo GOR Book
Livro da aula (modelos.Modelo):
book_name = modelos.Charfield (max_length = 150)
autor_name = modelos.Charfield (max_length = 150)
tipo = modelos.ForeignKey (Booktype, on_delete = modelos.CASCATA)
Preço = modelos.Floatfield ()
publicação = modelos.Charfield (max_length = 100)
Meta da classe:
ordening = ('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. O book_list.HTML exibirá todos os registros da tabela de livros. O book_detail.HTML exibirá os detalhes de um livro específico. A pesquisa.HTML exibirá o resultado da pesquisa após enviar o formulário de pesquisa.

lista de livros.html



Lista de livros










% se tipo % tipo.nome % 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.Conte como total_results %
Encontrado total_results resultado total_results | pluralize
% endwith %


% para C em resultados %

c.book_name


c.nome do autor


% vazio %

Nenhum resultado encontrado.


% endfor %
% fim se %






Criar funções de exibição:

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

Visualizações.py

# Importar módulos necessários
de Django.atalhos importam renderização, get_object_or_404
de .Livro de importação de modelos, Booktype
de Django.dB.Modelos Importar q
# Defina função para exibir todos os livros
def book_list (solicitação):
livro = livro.objetos.todos()
Retornar renderização (solicitação, 'book_list.html ', ' livro ': livro)
# Defina função para exibir o livro específico
def book_detail (solicitação, id):
book = get_object_or_404 (livro, id = id)
Tipos = Booktype.objetos.todos()
t = tipos.Get (id = livro.tipo.eu ia)
Retornar renderização (solicitação, 'book_detail.html ', ' livro ': livro,' tipo ': t.btype)
# Defina a função no livro de pesquisa
Def Pesquisa (solicitação):
Resultados = []
se solicitar.Método == "Get":
consulta = solicitação.PEGAR.Get ('Search')
se query == ":
Query = 'Nenhum'
Resultados = livro.objetos.filtro (q (book_name__icontains = query) | q (autor_name__icontains = consulta) | q (price__icontains = consulta))
render renderização (solicitação, 'pesquisa.html ', ' Query ': Query,' Results ': Results)

Defina os caminhos para chamar funções de visualização:

Modificar os URLs.arquivo py do projeto Django com o seguinte script. Quatro caminhos foram definidos no script. 'Admin/' Caminho é usado para abrir o painel administrativo do Django. O caminho vazio (") é usado para chamar a função book_list (). '/' O caminho é usado para chamar a função book_detail (). 'pesquisa/' caminho é usado para chamar a função de pesquisa ().

URLs.py

# Importar módulo de administrador
de Django.Contrible Import Admin
# Módulo de caminho de importação
de Django.URLs Caminho de importação
# Importar visualização
De SearchApp Import visualizações
# Defina caminhos
urlpatterns = [
caminho ('admin/', admin.site.URLs),
caminho (", vistas.book_list, nome = 'book_list'),
caminho ('/', visualizações.book_detail, nome = 'book_detail'),
caminho ('pesquisa/', visualizações.Pesquise, nome = 'Pesquisa'),
]

Execute o aplicativo do navegador:

Execute o seguinte comando para executar o servidor Django.

$ python3 gerencia.PY RUNSERVER

Execute o seguinte URL de 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", os detalhes deste livro aparecerão no navegador.

Se o usuário pesquisar a palavra, física no navegador, o seguinte resultado 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 do Django poderão implementar o recurso de pesquisa em seu site depois de ler este tutorial.