Como usar os serializadores de Django

Como usar os serializadores de Django
O serializador é usado em Django para converter as instâncias do modelo ou consulta em tipos de dados suportados pelo Python que podem ser facilmente renderizados em JSON, XML ou outros formatos. A desserialização também pode ser feita pelos serializadores para recuperar os dados originais dos dados serializados. Este recurso está disponível no Django Rest Framework. Portanto, os usuários precisam instalar essa estrutura para usar os serializadores. Qualquer página da web do site pode conter HTML, CSS e dados das tabelas de banco de dados. Mas a API não entende esses tipos de conteúdo e pode entender apenas os dados brutos, ou seja, dados JSON. Como os serializadores podem ser usados ​​para converter a instância do modelo em formato JSON mostrou 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 para serializadores:

Execute o seguinte comando para criar um aplicativo django nomeado SerialApp.

$ python3 gerencia.Py StartApp serialApp

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

Execute o seguinte comando para instalar o Django Rest Framework.

$ pip3 install djangorestframework

Adicione o Rest_framework e o nome do aplicativo no Instalado_app parte de configurações.py arquivo.

Instalado_apps = [
.. .
'Rest_framework',
'serialapp'
]

Crie um modelo para a tabela de banco de dados:

Abra o modelos.py arquivo do SerialApp pasta e adicione o seguinte script para definir a estrutura de clientes mesas. Cliente A classe é definida para criar uma tabela chamada clientes com Nome, endereço, email, contato_no, e criada Campos. Aqui, Nome, email, e contact_no Os campos armazenarão dados de caracteres, o endereço o campo armazenará os dados de texto e criada O campo armazenará os dados do DateTime.

modelos.py

# Importe o módulo de modelos
de Django.Modelos de importação de banco de dados
# Defina a classe Model para a tabela de clientes
Cliente de classe (modelos.Modelo):
nome = modelos.Charfield (max_length = 100)
endereço = modelos.Campo de texto()
email = modelos.Charfield (max_length = 50)
contact_no = modelos.Charfield (max_length = 20)
criado = modelos.DateTimefield (auto_now_add = true)

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

$ python3 gerencia.Py Makemigrações SerialApp

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

$ python3 gerencia.py migrar

Modificar o conteúdo do admin.py Arquivo com o seguinte conteúdo. Aqui, o cliente A classe dos modelos é registrada usando o registro() método para exibir o clientes Tabelas no painel da administração Django.

admin.py

# Importar módulo de administrador
de Django.Contrible Import Admin
# Importe o modelo do cliente
de .modelos importam cliente
# Registre o modelo do cliente
admin.site.registro (cliente)

URLs.py

de Django.URLs Caminho de importação
de Django.Contrible Import Admin
urlpatterns = [
# Defina o caminho para o administrador
caminho ('admin/', admin.site.URLs),
]

Adicionar registros na tabela:

Abra a página de administração do Django e adicione alguns registros no clientes Tabela exibida no navegador no formato JSON. Aqui, três registros foram inseridos.

Modificar as visualizações.PY:

Abra o Visualizações.py arquivo do SerialApp e substitua o conteúdo pelo seguinte script. Lista de clientes A classe é definida para serializar todos os registros dos clientes e retornar os dados ao navegador no formato JSON. CustomerDetail A classe é definida para serializar o registro do cliente específico com base no valor de identificação e retornar os dados do navegador no formato JSON. CustomerSerializer é um arquivo de serializadores que foi criado na próxima parte deste tutorial.

Visualizações.py

# Importar genéricos da estrutura de Rest Django
De Rest_framework Importar genéricos
# Importar modelo de cliente
de .modelos importam cliente
# Importar o CustomerSerializer de serializadores
de .Serializadores importam o CustomerSerializer
# Defina a classe para converter todos os registros da tabela de clientes em JSON
CLIETERSLIST CLIETERS (GENERICS.ListCreateApiview):
Queryset = Cliente.objetos.todos()
Serializer_class = CustomerSerializer
# Defina a classe para converter o registro específico da tabela de clientes em JSON
Classe ClientDetail (genéricos.RecuerepDateDestroyapiview):
Queryset = Cliente.objetos.todos()
Serializer_class = CustomerSerializer

Crie serializador:

Criar serializadores.py arquivo no mesmo local do Visualizações.py Arquivo com o seguinte script. ModelSerializer A classe é usada aqui para criar CustomerSerializer classe que retorna a classe dos serializadores com os campos do modelo do cliente. Os campos modelo do cliente que serão convertidos em formato JSON são mencionados no Meta aula.

serializadores.py

# Importar o módulo dos serializadores da estrutura de Rest Django
De Rest_framework Import Serializers
# Importar modelo de cliente
de .modelos importam cliente
# Defina a classe dos serializadores personalizados para converter os campos de modelo do cliente em JSON
CLASSTERS CLIRENTERSERIDERAZER (SERIALIZADORES.ModelSerializer):
Meta da classe:
modelo = cliente
campos = ('id', 'nome', 'endereço', 'email', 'contact_no')

Modificar os URLs.arquivo py:

Modificar o conteúdo do URLs.py Arquivo com o seguinte script. No roteiro, o 'clientes/'O caminho é definido para exibir todos os registros do clientes Tabela em formato JSON, e o 'clientes//'O caminho é definido para exibir os dados específicos do clientes Tabela em formato JSON com base no valor de identificação.

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
# Importe as visualizações
De vistas de importação de SerialApp
# Importar format_suffix_patterns da estrutura de descanso de Django
De Rest_framework.Urlpatterns Import format_suffix_patterns
urlpatterns = [
# Defina o caminho para o administrador
caminho ('admin/', admin.site.URLs),
# Defina o caminho para obter todos os dados de clientes no formato JSON
caminho ('clientes/', visualizações.Lista de clientes.AS_VIEW ()),
# Defina o caminho para obter os dados específicos do cliente com base no ID no formato JSON
caminho ('clientes //', visualizações.CustomerDetail.AS_VIEW ()),
]
urlpatterns = format_suffix_patterns (urlpatterns)

Todos os registros da tabela de clientes serão mostrados no formato JSON se o seguinte URL será executado.

http: // localhost: 8000/clientes

O registro do segundo cliente será mostrado no formato JSON se o seguinte URL executar.

http: // localhost: 8000/clientes/2

Conclusão:

O uso de serializadores no aplicativo Django para converter a instância do modelo em formato JSON mostrou neste tutorial usando um script simples. Os usuários do Django entenderão o objetivo de usar serializadores e os aplicam em seu aplicativo, se necessário, depois de ler este tutorial.