Como usar o Queryset em Django

Como usar o Queryset em Django
A maioria dos aplicativos da Web é implementada com o banco de dados agora. O Queryset é usado no aplicativo Django para recuperar registros filtrando ou cortando ou encomendo a tabela de banco de dados sem alterar os dados originais. O modelo usou o django para criar a tabela no banco de dados. Portanto, o conhecimento do uso do modelo em Django é necessário para entender o uso de Queryset. A principal função do Queryset é iterar os registros das tabelas de banco de dados, convertendo -as em consultas SQL. Ele pode ser usado na linha de comando python ou escrevendo o script python para exibir a saída do navegador. Os usos do Queryset para recuperar dados de uma tabela de banco de dados de diferentes maneiras foram explicados neste tutorial.

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 nomeado Queryapp.

$ python3 gerencia.Py StartApp Queryapp

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 no Instalado_app parte de configurações.py arquivo.

Instalado_apps = [
..
'Queryapp'
]

Crie uma pasta chamada modelos dentro de Queryapp pasta e defina o modelos Localização do aplicativo no MODELOS parte de configurações.py arquivo.

Modelos = [

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

Crie um modelo para a tabela de banco de dados:

Abra o modelos.py arquivo do Queryapp pasta e adicione o seguinte script para definir a estrutura de produtos mesas. produtos A classe é definida para criar uma tabela chamada produtos com nome, tipo, marca, e preço Campos. Aqui, nome, tipo, e marca Os campos armazenarão dados de caracteres, e o preço O campo armazenará os dados inteiros.

modelos.py

# Módulo de modelos de importação
de Django.Modelos de importação de banco de dados
# Defina a classe para criar a tabela de produtos
Produto de classe (modelos.Modelo):
nome = modelos.Charfield (max_length = 100)
tipo = modelos.Charfield (max_length = 30)
marca = modelos.Charfield (max_length = 50)
Preço = modelos.Integerfield ()

Execute o Maquemigrações comando para criar uma nova migração com base nas alterações feitas pelos modelos.

$ python3 gerencia.Py Makemigrações Queryapp

Execute o migrar comando para executar os comandos SQL e criar todas as tabelas no banco de dados que são definidas no modelos.py arquivo.

$ python3 gerencia.py migrar

Modificar o conteúdo do admin.py Arquivo com o seguinte conteúdo. Aqui, O CLAS do produto dos modelosS é registrado usando o registro() método para exibir o produtos Tabelas no painel da administração Django.

admin.py

# Importar módulo de administrador
de Django.Contrible Import Admin
# Importar modelo de produto
de .Modelos Importar Produto
# Registro modelo de produto
admin.site.registro (produto)

Crie um arquivo de modelo chamado lista de produtos.html dentro de queryapp/modelos/ com o seguinte script. Este script exibirá todos os dados de produtos tabela em forma de tabular com uma caixa de pesquisa. O usuário poderá pesquisar os registros específicos da tabela de produtos usando o formulário de pesquisa. para O loop é usado no script para iterar os dados passados ​​do Visualizações.py arquivo.

lista de produtos.html



<br>Tutorial de consulta Django<br>



Produto de pesquisa



% csrf_token %
Produto de pesquisa:







% para produto em object_list %



% endfor %
EU IANomeMarcaPreço
produtos.eu ia produtos.nome produtos.marcastyle = "Text-align: direita"> $ Produto.preço



Modificar o conteúdo do Visualizações.py Arquivo com o seguinte script. Os nomes de modelo e modelo são definidos no Lista de produtos aula. get_queryset () O método da classe é definido no script para filtrar os dados com base no conteúdo enviado pela caixa de pesquisa do modelo. produtos.objetos.todos() Método retorna todos os registros do produtos mesa. solicitar.PEGAR.chaves() O método é usado no script para verificar se qualquer dados é enviado pelo formulário de pesquisa. Se este método retornar verdadeiro, então o solicitar.PEGAR.Get ('SRC') O método é usado para verificar se o valor enviado está vazio ou não. Se esse método retornar um valor não vazio, o valor será armazenado na variável, palavra -chave, e será usado para filtrar os dados com base no marca e tipo campos do produtos mesa.

Visualizações.py

# Módulo ListView de importação
de Django.Visualizações.Importação genérica ListView
# Importar módulo de produto
de .Modelos Importar Produto
# Módulo q de importação
de Django.dB.Modelos Importar q
# Defina a classe para consultar dados
Classe ProductList (ListView):
# Defina modelo
modelo = produto
# Defina modelo
template_name = 'ProductList.html '
def get_queryset (self):
# Defina o conjunto de consultas padrão
Queryset = Produto.objetos.todos()
# Verifique se o valor do formulário é enviado ou não
se eu.solicitar.PEGAR.chaves():
# Verifique a palavra -chave de pesquisa
se eu.solicitar.PEGAR.Get ('SRC') != ":
palavra -chave = self.solicitar.PEGAR.Get ('SRC')
# Defina o conjunto de consultas com base na palavra -chave de pesquisa
Queryset = Produto.objetos.filtro (q (marca = palavra -chave.capitalize ()) | Q (tipo = palavra -chave.capitalizar()))
Retornar Queryset

Modificar o conteúdo do URLs.py Arquivo com o seguinte script. No roteiro, o 'SearchPro/'O caminho é definido para chamar o Lista de produtos.AS_VIEW () método que enviará todos os dados e os dados filtrados do produtos tabela para o arquivo de modelo.

URLs.py

# Importar módulo de administrador
de Django.Contrible Import Admin
# Importar caminho e incluir módulo
de Django.URLs Caminho de importação
# Importar módulo de searchemployee
de Queryapp.Visualizações Importar ProductList
urlpatterns = [
# Defina o caminho para o administrador
caminho ('admin/', admin.site.URLs),
# Defina o caminho para pesquisar o produto
Path ('SearchPro/', ProductList.AS_VIEW ()),

Adicionar registros na tabela:

Abra a página de administração do Django e adicione alguns registros no produtos tabela para aplicar o conjunto de consultas. Aqui, cinco registros foram inseridos.

Todos os registros dos produtos com a caixa de pesquisa serão exibidos no navegador depois de executar o seguinte URL.

http: // localhost: 8000/SearchPro


Todos os produtos de shampoo exibidos se o tipo de produto, 'xampu'será pesquisado na caixa de pesquisa.

Os produtos de leite em pó de o fresco A marca será exibida se a marca do produto 'fresco'será pesquisado na caixa de pesquisa.

Conclusão:

A maneira de filtrar os dados de uma tabela simples de banco de dados usando o Queryset explicou neste tutorial. Os dados podem ser filtrados de maneiras diferentes. Os leitores entenderão usando uma consulta para filtrar ou pesquisar dados no navegador depois de ler este tutorial.