Boas práticas e convenções opinativas para criar aplicações FastAPI prontas para produção, com base na experiência em startups.
fastapi/sqlmodel
SQLModel é uma biblioteca Python para trabalhar com bancos de dados SQL usando classes Python, construída sobre Pydantic e SQLAlchemy e projetada para ser usada com FastAPI.
- Estrelas
- 18,447
- Forks
- 893
- Issues abertas
- 53
- Último commit
- há 6 dias
O que é?
Com o SQLModel, você define tabelas de banco de dados como classes Python usando anotações de tipo. Uma única classe funciona tanto como modelo de tabela do SQLAlchemy quanto como modelo de dados do Pydantic, então você não precisa escrever o mesmo schema duas vezes para acessar o banco e validar requisições ou respostas.
A biblioteca é uma camada fina sobre Pydantic e SQLAlchemy e mantém as APIs de ambos disponíveis. Você pode fazer consultas com uma sintaxe baseada em select, executar sessões e, quando necessário, usar os recursos do SQLAlchemy por baixo. A criação de tabelas é feita por meio dos metadados padrão do SQLModel, e os exemplos do projeto usam SQLite.
O SQLModel foi criado pelo autor do FastAPI e foi projetado para ser compatível com ele. A instalação pode ser feita via pip ou uv, e o projeto é licenciado pelo MIT.
Recursos principais
- 01Define tabelas e modelos Pydantic com uma única classe Python usando anotações de tipo.
- 02Oferece consultas baseadas em select e sessões construídas sobre SQLAlchemy.
- 03Funciona com FastAPI para modelos de requisição e resposta.
- 04Mantém acesso completo aos recursos subjacentes do SQLAlchemy e do Pydantic.
- 05Oferece autocompletar no editor e erros de tipo em linha.
Casos de uso
- Criar um serviço FastAPI que lê e grava dados em um banco SQL.
- Reduzir definições de modelos duplicadas entre tabelas ORM e schemas de API.
- Migrar uma aplicação SQLAlchemy existente para modelos baseados em Pydantic.
Início rápido
- 1
Instale o uv seguindo o guia oficial de instalação
- 2
Adicione o SQLModel ao seu projeto
uv add sqlmodel
Tópicos
Perguntas frequentes
- O que é sqlmodel?
- SQLModel é uma biblioteca Python para trabalhar com bancos de dados SQL usando classes Python, construída sobre Pydantic e SQLAlchemy e projetada para ser usada com FastAPI. Com o SQLModel, você define tabelas de banco de dados como classes Python usando anotações de tipo. Uma única classe funciona tanto como modelo de tabela do SQLAlchemy quanto como modelo de dados do Pydantic, então você não precisa escrever o mesmo schema duas vezes para acessar o banco e validar requisições ou respostas.
- sqlmodel é gratuito? Qual é a licença?
- sqlmodel é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- sqlmodel ainda é mantido?
- Manutenção ativa. O último commit de sqlmodel foi em 15 de out. de 2026.
- Para que posso usar sqlmodel?
- Criar um serviço FastAPI que lê e grava dados em um banco SQL. Reduzir definições de modelos duplicadas entre tabelas ORM e schemas de API. Migrar uma aplicação SQLAlchemy existente para modelos baseados em Pydantic.
- Como instalar sqlmodel?
- Instale o uv seguindo o guia oficial de instalação Adicione o SQLModel ao seu projeto: uv add sqlmodel
- Onde consigo sqlmodel?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/fastapi/sqlmodel
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
ORM para Node.js e TypeScript que oferece acesso type-safe a bancos de dados como PostgreSQL, MySQL, SQLite e MongoDB.
ORM completo para Go que mapeia structs para tabelas de banco de dados e oferece suporte a associações, hooks, transações e migrações.
ORM em TypeScript para Node.js baseado nos padrões Data Mapper, Unit of Work e Identity Map, com suporte a SQL e MongoDB.
Framework web Python para criar APIs com type hints padrão, validação automática, documentação OpenAPI e alto desempenho.
Biblioteca Python que restringe as saídas de LLMs durante a geração para corresponderem a um tipo, regex, JSON schema ou gramática especificados.