Django

Como usar o queryset no Django

Como usar o queryset no Django
A maioria dos aplicativos da web são implementados com o banco de dados agora. querysetéutilizado na aplicação Django para recuperar registros filtrando ou fatiando ou ordenando a tabela do banco de dados sem alterar os dados originais. O modelo usou Django para criar a tabela no banco de dados. Portanto, o conhecimento de uso do modelo em Django é necessário para entender o uso do queryset. A principal função do queryset é iterar os registros das tabelas do banco de dados, convertendo-os em consultas SQL. Ele pode ser usado a partir da 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 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 queryapp.

$ python3 manage.py startapp queryapp

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 no INSTALLED_APP parte de definições.py Arquivo.

INSTALLED_APPS = [

'queryapp'
]

Crie uma pasta chamada modelos dentro de queryapp pasta e definir o modelos localização do aplicativo no MODELOS parte de definições.py Arquivo.

MODELOS = [

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

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 classe é definida para criar uma tabela chamada produtos com nome, tipo, marca, e preço Campos. Aqui, nome, tipo, e marca campos irão armazenar dados de caracteres, e o preço campo irá armazenar os dados inteiros.

modelos.py

# Módulo de importação de modelos
de django.modelos de importação db
# Defina a classe para criar a tabela de produtos
classe Produto (modelos.Modelo):
nome = modelos.CharField (max_length = 100)
type = models.CharField (max_length = 30)
marca = modelos.CharField (max_length = 50)
preço = modelos.IntegerField ()

Execute o fazer migrações comando para criar uma nova migração com base nas mudanças feitas pelos modelos.

$ python3 manage.py makemigrations 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 manage.py migrar

Modifique o conteúdo do admin.py arquivo com o seguinte conteúdo. Aqui, as classes de produtos dos modeloss é registrado usando o registro() método para exibir o produtos tabelas no painel de administração do Django.

admin.py

# Importar módulo de administração
de django.contrib import admin
# Modelo de produto de importação
a partir de .modelos de importação de produto
# Registrar o modelo do produto
admin.local.registrar (produto)

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

lista de produtos.html



<br>Tutorial Django QuerySet<br>



Procurando Produto



% csrf_token%
Produto de pesquisa:







% para o produto em object_list%



% endfor%
EU IANomeMarcaPreço
produtos.eu ia produtos.nome produtos.marcastyle = "text-align: right"> $ product.preço



Modifique o conteúdo do Visualizações.py arquivo com o seguinte script. O modelo e os nomes dos modelos são definidos no Lista de produtos aula. get_queryset () 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.tudo() método retorna todos os registros do produtos tabela. solicitação.OBTER.chaves() método é usado no script para verificar se todos os dados são enviados pelo formulário de pesquisa. Se este método retornar verdadeiro, então o solicitação.OBTER.get ('src') método é usado para verificar se o valor enviado está vazio ou não. Se este 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 modelo campos do produtos tabela.

Visualizações.py

# Importar módulo ListView
de django.Visualizações.importação genérica ListView
# Módulo de importação de produto
a partir de .modelos de importação de produto
# Importar módulo Q
de django.db.modelos de importação Q
# Definir classe para consulta de dados
classe ProductList (ListView):
# Definir modelo
modelo = produto
# Definir modelo
template_name = 'productList.html '
def get_queryset (self):
# Defina o conjunto de consulta padrão
queryset = Produto.objetos.tudo()
# Verifique se o valor do formulário foi enviado ou não
se eu.solicitação.OBTER.chaves():
# Verifique a palavra-chave de pesquisa
se eu.solicitação.OBTER.get ('src') != ":
palavra-chave = self.solicitação.OBTER.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()))
return queryset

Modifique o conteúdo do urls.py arquivo com o seguinte script. No script, o 'searchPro/ 'caminho é definido para chamar o Lista de produtos.as_view () método que irá enviar todos os dados e os dados filtrados do produtos tabela para o arquivo de modelo.

urls.py

# Importar módulo de administração
de django.contrib import admin
# Importar caminho e incluir módulo
de django.caminho de importação de urls
# Importar módulo SearchEmployee
de queryapp.visualizações importar ProductList
urlpatterns = [
# Defina o caminho para o administrador
caminho ('admin /', admin.local.urls),
# Defina o caminho para pesquisar o produto
caminho ('searchPro /', ProductList.as_view ()),

Adicione registros à tabela:

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

Todos os registros dos produtos com a caixa de pesquisa serão exibidos no navegador após a execução da 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 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 de banco de dados simples usando o queryset foi explicada neste tutorial. Os dados podem ser filtrados de diferentes maneiras. Os leitores entenderão o uso de um queryset para filtrar ou pesquisar dados no navegador depois de ler este tutorial.

Top jogos do Oculus App Lab
Se você é proprietário de um fone de ouvido Oculus, deve estar informado sobre o carregamento lateral. Sideload é o processo de instalação de conteúdo...
Os 10 melhores jogos para jogar no Ubuntu
A plataforma Windows tem sido uma das plataformas dominantes para jogos devido à grande porcentagem de jogos que estão sendo desenvolvidos hoje para o...
5 melhores jogos de arcade para Linux
Hoje em dia, os computadores são máquinas sérias usadas para jogos. Se você não pode obter a nova pontuação máxima, você saberá o que quero dizer. Nes...