pydantic-core) é escrito em Rust. Os exemplos usam o pydantic v2. Você precisa do Python e da biblioteca pydantic:
Criando um modelo
- Primeiro, precisamos importar
pydantic.BaseModele fazer a nossa classe herdar dele para começar a validar. No nosso exemplo, vamos criar uma classe chamadaPerson, que terá um nome, uma idade e um e-mail.
- Com essa classe, ao instanciá-la, o pydantic vai validar se
nameeemailsão strings e seageé um inteiro.
Usando o modelo
- Agora que a criamos, vamos instanciar a classe. Vamos criar um dicionário com os dados e desempacotá-lo na nossa classe.
- O exemplo acima não gera nenhum erro, pois todos os campos têm o tipo correto. Por padrão, o pydantic também converte valores compatíveis: se
agefor a string"19", ela vira o inteiro19. Agora vamos enviar dados errados para confirmar que a validação funciona.
- O exemplo acima gera um
ValidationError, poisageprecisa ser um inteiro e"nineteen"não pode ser convertido em um:
- Para tratar o erro em vez de deixá-lo parar o seu programa, capture-o com
try/except. O métodoerrors()lista cada campo inválido:
Modo estrito
- Se você quiser rejeitar também strings como
"19", ative o modo estrito no modelo. Assim,agesó aceita umintde verdade, ePerson(name="John", age="19", email="john@example.com")geraValidationError.
Criando uma dataclass
- Você também pode criar dataclasses com o pydantic. Elas são parecidas com as dataclasses padrão do Python, mas validam os campos como o
BaseModel.
- Se enviarmos a string
"19"paraage, ela será convertida para oint19.
O Pydantic suporta validação recursiva: ao validar modelos aninhados, ele também valida os modelos
internos.Se uma classe tiver uma lista de
Person, people: list[Person], o pydantic verifica cada item da lista e o converte em um Person.Extras
- O Pydantic tem alguns extras, como a validação de e-mail e um pacote de fallback de timezone. Para instalá-los, execute os comandos abaixo:
- Você pode instalar os dois de uma vez com o seguinte comando.
- O
pydantic[email]adiciona o tipoEmailStr, que valida o formatouser@domain.tlde normaliza o endereço.
Validando variáveis de ambiente na inicialização
- Bots e APIs leem tokens e configurações de variáveis de ambiente. Com o
pydantic-settings, uma variável faltando ou inválida para a aplicação na inicialização com um erro claro, em vez de falhar mais tarde no meio de uma requisição.
- Declare as variáveis de que a sua aplicação precisa em uma classe que herda de
BaseSettings. Cada campo lê a variável de ambiente de mesmo nome, sem diferenciar maiúsculas de minúsculas:discord_tokenlêDISCORD_TOKEN.
settings.py
- Se
DISCORD_TOKENnão estiver definida,Settings()gera umValidationErrorparadiscord_tokencom a mensagemField required. Um valor comoPORT=abcfalha da mesma forma, porqueportprecisa ser um inteiro. - O
SecretStresconde o token quando você imprime ou registra as configurações nos logs. Leia o valor real comsettings.discord_token.get_secret_value().
Rode na Square Cloud
Liste o pydantic e os extras dele no seurequirements.txt, para que a Square Cloud os instale durante o deploy:
requirements.txt
squarecloud.app na raiz do projeto. Para um bot cujo arquivo principal é o main.py e importa settings do settings.py:
squarecloud.app
.py, o requirements.txt e o squarecloud.app, sem o token. Defina a DISCORD_TOKEN e as outras variáveis no dashboard ou com squarecloud app env set: veja Variáveis de ambiente. Se uma variável obrigatória estiver faltando, o ValidationError aparece nos logs da aplicação assim que ela inicia.
Próximos passos
Variáveis de ambiente
Defina as variáveis que a sua classe de configurações lê.
FastAPI
Faça deploy de uma API que valida as requisições com o pydantic.
Bot do Discord
Hospede um bot que lê o token do ambiente.
Gostou desse artigo?
- Criamos este conteúdo com o máximo de cuidado para oferecer a melhor ajuda possível. Se o artigo contribuiu de alguma forma, valorize nosso trabalho! Desenvolvedores já avaliaram a Square Cloud com 4,9/5 em 402 avaliações no Google e Trustpilot: deixe a sua também! Isso nos ajuda a entender o que é mais importante para você.
Google Reviews
Deixe sua avaliação no Google Reviews.
Trustpilot
Deixe sua avaliação no Trustpilot.

