0% acharam este documento útil (0 voto)
5 visualizações2 páginas

Guia Rápido de FastAPI com SQLAlchemy

FastAPI é um framework moderno e de alta performance para construção de APIs com Python, que suporta programação assíncrona e síncrona. O documento descreve a configuração de um projeto utilizando FastAPI e SQLAlchemy, incluindo a criação de pastas, arquivos de inicialização, schemas para validação de dados e modelos para interação com o banco de dados. Além disso, aborda o uso de tipagem com Pydantic e a implementação de relacionamentos entre tabelas no SQLAlchemy.

Enviado por

guilherme.cabral
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato TXT, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
5 visualizações2 páginas

Guia Rápido de FastAPI com SQLAlchemy

FastAPI é um framework moderno e de alta performance para construção de APIs com Python, que suporta programação assíncrona e síncrona. O documento descreve a configuração de um projeto utilizando FastAPI e SQLAlchemy, incluindo a criação de pastas, arquivos de inicialização, schemas para validação de dados e modelos para interação com o banco de dados. Além disso, aborda o uso de tipagem com Pydantic e a implementação de relacionamentos entre tabelas no SQLAlchemy.

Enviado por

guilherme.cabral
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato TXT, PDF, TXT ou leia on-line no Scribd

FastAPI é um framework de:

Alta performance, Fácil de aprender, pronto para produção.

Moderno e rápido (alta performance) framework web para construção de APIS com
Python 3.6 ou superior, baseado nos type hints padrões do Python

O FastAPI tem seu lado assíncrono e síncrono.

Async: TEM QUE ESPERAR

Código assíncrono apenas significa que a linguagem tem um jeito de dizer para o
computador / programa que em certo ponto, ele terá que esperar por algo para
finalizar em outro lugar.

Vamos usar o sqlalchemy, que é uma ORM para lidarmos com banco de dados.

PROJETO 1:

__init__.py: ele é um arquivo padrão do python que serve para modularização de


pastas.

no if __name__ == "main":

o código: [Link]('main:app', host='[Link]', port=8000, log_level="info",


reload=True)

reload=True esse parâmetro caso a gente faça alguma alteração no nosso código não
precisamos parar o servidor para subir de novo, ele reinicia automaticamente.

O Makefile

ele é um facilitador para nos executarmos os nossos comandos

você coloca nele o comando que você quer que ele execute:

run:
@uvicorn workout_api.main:app --reload

e você executa o comando usando o:

make run

Criamos a pasta atleta (entidade) colocamos o __init__ que é necessário e criamos o


arquivo [Link]

o [Link] serve para a gente fazer as validações e também serializar os dados.


os dados que a gente quer que aparece no JSON, eles passam pelos schemas

toda classe de schema quando voce usa pydentic, voce tem que importar o basemodel.

O Annotated do pydantic nos ajuda a tipar os dados

ELE RECEBE A TIPAGEM PRIMEIRO, DEPOIS O RETORNO DELE, EXEMPLO:

nome: Annotated[str, Field()]

Ele nos ajuda a detalhar melhor os nossos campos.


Existem ainda possibilidades de fazermos validator em cima de campos. Exemplo em
CPF.

Tem uma tipagem do pydantic chamada positive float. ele não aceita um numero menor
que 0.

vamos criar nossa models.

vamos pesquisar por declarative base do sqlalchemy: pesquise por:

declarative base sqlalchemy

[Link]

[Link]

NA BASEMODEL NOS COLOCAMOS UM CAMPO PADRÃO QUE VAI TER EM TODAS!


exp: id

USAMOS O Mapped

Todos vao herdar de models.

Vamos colocar isso em nossa pasta contrib, que é onde vamos guardar nossas coisas
mais genéricas.

O BaseModel tem um recurso chamado __tablename__ que é o nome da tabela que vai ser
chamado no banco de dados.

Fizemos um BaseModel para Models, mas, vamos fazer para schemas também!

Podemos criar as entidades com FastAPI da seguinte forma:

1 - cria a pasta com o nome da entidade


2 - cria o __init__.py
3 - cria o [Link]
4 - cria o [Link]

como criar o relacionamento usando fastapi com sqlalchemy?

nome_tabela: Mapped['tabelaModel'l = relationship(back_populates='tabela2')


nome_tabela_id: Mapped[int] = mapped_column(ForeignKey('tabela2.pk_id'))

Você também pode gostar