Como definir campos obrigatórios no Pydantic

Como Definir Campos Obrigatorios No Pydantic



Um campo obrigatório é um campo que deve estar presente no modelo de dados. Esses campos são essenciais e não podem ser deixados em branco, pois são necessários para o bom funcionamento ou conclusão de um processo. Se um campo obrigatório não receber um valor, o Pydantic gerará uma exceção ValueError. Os campos podem ser definidos como campos obrigatórios de diversas maneiras. No entanto, o Pydantic define todos os campos do modelo de dados como “obrigatórios” por padrão. Este artigo demonstrará como definir campos obrigatórios no Pydantic. Também discutiremos algumas boas dicas para usar os campos obrigatórios.

Benefícios do uso de campos obrigatórios

Existem vários benefícios em usar os campos obrigatórios no Pydantic.

  • Garantindo a integridade dos dados: Os campos obrigatórios nos ajudam a garantir que nossos modelos de dados estejam completos e válidos. Isso pode ajudar a evitar erros no código e no processamento de dados.
  • Prevenindo entradas maliciosas: Os campos obrigatórios também podem ser usados ​​para evitar que usuários mal-intencionados injetem dados inválidos em seu sistema.
  • Tornando o código mais legível: Você pode melhorar a legibilidade e a compreensão do seu código usando os campos obrigatórios.

Como definir campos obrigatórios no Pydantic

No Pydantic, existem três métodos para definir um campo como obrigatório. Vamos explorar cada um deles em detalhes.







Usando anotações

A maneira mais simples de definir um campo obrigatório no Pydantic é usando anotações. Usando anotações, um tipo de metadados sintáticos, você pode adicionar mais detalhes sobre variáveis ​​e atributos de classes. No Pydantic, as anotações são usadas para indicar o tipo de dados esperado de um campo e, por padrão, todos os campos anotados são considerados obrigatórios até que você torne um ou mais campos opcionais.



de pydantico importar Modelo Base

aula Pessoa ( Modelo Base ) :

nome completo: str

altura: flutuador

e-mail : str

Neste exemplo, nome_completo, altura e email são campos obrigatórios. Se você criar uma instância da classe Person sem fornecer valores para esses campos, o Pydantic gerará um ValidationError indicando que os campos obrigatórios estão faltando.



tentar :

dados_pessoa = {

'altura' : 5.8 ,

}

pessoa = Pessoa ( **pessoa_dados )

exceto Erro de valor como e:

imprimir ( e )





Neste exemplo, o campo full_name está faltando e o campo height também está faltando. Ambos os campos são obrigatórios e ValidationError fornece informações claras sobre os campos ausentes.

Usando reticências (…)

Outra maneira de declarar um campo como obrigatório no Pydantic é usando reticências ( ). Esta é uma abordagem explícita fornecida pelo Pydantic para marcar um campo conforme necessário.



de pydantico importar Modelo Base

aula produtos ( Modelo Base ) :

nome: str = ...

preço : flutuador = ...

descrição : str = ...

Neste exemplo, os campos nome, preço e descrição são todos definidos conforme obrigatório usando reticências. Este método torna explícito e visível que campos específicos não podem ser ignorados ao criar uma instância da classe Produto.

tentar :

informações do produto = {

'nome' : 'Celular' ,

'descrição' : 'Smartphone com 16 Gb de RAM' ,

}

produtos = produtos ( **informações do produto )

exceto Erro de valor como e:

imprimir ( e )


Neste exemplo, o campo de preço está faltando e ValidationError indica claramente o campo obrigatório ausente.

Usando a função de campo

A função Field do módulo Pydantic fornece recursos adicionais para personalizar a validação de campo e metadados. Você pode usar a função Campo para declarar campos obrigatórios e aplicar regras de validação adicionais.

Veja como você pode definir campos obrigatórios usando a função Campo:

de pydantico importar Modelo Base , Campo

aula Endereço ( Modelo Base ) :

rua: str = Campo ( ... , descrição = 'Endereço da Rua' )

cidade: str = Campo ( ... )

CEP: str = Campo ( ... )

Neste exemplo, usamos a função Field para definir os campos obrigatórios rua, cidade e CEP, juntamente com regras e descrições de validação adicionais. As reticências “…” indicam que esses campos devem ser definidos como campos obrigatórios.

tentar :

dados_de_endereço = {

'rua' : 'Rua Principal 111' ,

'CEP' : '123456'

}

endereço = Endereço ( **endereço_dados )

exceto Erro de valor como e:

imprimir ( e )

Neste exemplo, o campo cidade está faltando e ValidationError fornece informações sobre o campo obrigatório ausente.

Os campos obrigatórios podem ser validados usando outros recursos do Pydantic, como restrições e tipos. Por exemplo, você pode especificar que um campo de nome deve ser uma sequência de pelo menos 5 caracteres. Você pode usar o decorador de campo para personalizar o comportamento dos campos obrigatórios. Por exemplo, você pode especificar um valor padrão para o campo ou uma mensagem a ser exibida se o campo não receber um valor.

Usando vários métodos para definir campos obrigatórios em um único modelo Pydantic

Você pode usar vários métodos para definir campos obrigatórios em um único modelo Pydantic. Por exemplo, você pode usar anotações para alguns campos, reticências ( ) para outros, e a função Campo para personalização adicional. Pydantic permite que você escolha a melhor abordagem para sua organização de código e preferências de legibilidade. Considere o seguinte exemplo:

de pydantico importar Modelo Base , Campo

aula Funcionário ( Modelo Base ) :

nome: str

departamento: str =

salário: flutuador = Campo ( )

Neste exemplo, todos os campos são obrigatórios. Usamos três métodos diferentes para definir os campos obrigatórios. O campo nome usa a anotação, o departamento usa reticências e o salário usa a função Campo.

Dicas para usar campos obrigatórios

Seguir algumas boas práticas ao definir os campos obrigatórios no Pydantic é essencial para criar um código suave e de fácil manutenção. As dicas a seguir irão ajudá-lo a definir os campos obrigatórios no Pydantic:

  1. Use nomes de campo claros e descritivos : escolha nomes significativos para seus campos que indiquem claramente sua finalidade. Isso ajuda outros desenvolvedores a saber quais dados são necessários e reduz as chances de falta de campos obrigatórios.
  2. Forneça descrições informativas dos campos : ao usar a função Campo para definir campos obrigatórios, forneça descrições descritivas que expliquem a finalidade e o formato esperado dos dados.
  3. Campos relacionados ao grupo : se o seu modelo de dados tiver um grande número de campos, considere agrupar os campos relacionados em estruturas aninhadas. Isso pode ajudar seu código a ser mais legível e facilitar o gerenciamento dos campos obrigatórios.
  4. Use mensagens personalizadas para campos obrigatórios: Por padrão, o Pydantic irá gerar uma exceção ValueError se um campo obrigatório não receber um valor. Você pode personalizar a mensagem de erro especificando o argumento da mensagem para o decorador do campo.

Conclusão

O Pydantic, por padrão, torna os campos conforme obrigatórios. No entanto, você pode definir explicitamente o campo como campos obrigatórios. Ao declarar os campos conforme obrigatórios, você garante que seus modelos de dados sejam precisos, completos e alinhados com seus requisitos. Neste post, cobrimos três métodos distintos para definir os campos obrigatórios no Pydantic, ou seja, anotações, reticências (…) e a função Field. Além disso, analisamos algumas práticas recomendadas para o uso de campos obrigatórios para que você possa especificar campos de maneira eficaz em seu modelo de dados.