1
resposta

[Reclamação] Difícil compreensão em : Persistência com PostgreSQL e FastAPI

Um monte de informação sem explicação, dificultando o aprendizado.

1 resposta

Oi, Gabriel!

Sinto muito que você não esteja tendo uma experiência agradável com o curso! Levamos em consideração todo feedback de melhoria, então peço que, ao finalizar o curso, em um campo determinado para você dar sua opinião sobre o curso, escreva todos os pontos que você não gostou, eles serão levados em consideração em atualizações futuras.

No mais, farei um overview sobre as tecnologias que você comentou:

A ideia principal aqui é criar um serviço web que interaja com um banco de dados PostgreSQL usando a FastAPI. Isso envolve configurar rotas (ou endpoints) que permitem criar e ler dados de estudantes.

Passo a Passo Simplificado:

  1. Importação de Bibliotecas:

    • FastAPI: Para criar a aplicação web.
    • SQLAlchemy: Para interagir com o banco de dados de forma mais simples, sem precisar escrever SQL puro.
    • Schemas e Models: Representam a estrutura dos dados que estamos manipulando.
  2. Configuração do Banco de Dados:

    • Criamos uma conexão com o PostgreSQL usando SQLAlchemy e definimos as tabelas se elas ainda não existirem.
  3. Criação de Rotas:

    • POST /estudantes/: Para adicionar novos estudantes. Aqui, usamos um decorator @app.post para definir que essa rota aceita requisições do tipo POST.
    • GET /estudantes/: Para listar todos os estudantes. Usamos @app.get para definir que essa rota aceita requisições do tipo GET.
  4. Funções de Manipulação de Dados:

    • create_student: Recebe dados de um novo estudante, valida e insere no banco.
    • read_students: Recupera todos os estudantes do banco e os retorna.

Exemplos Práticos:

  • Adicionar um Estudante:

    @app.post('/estudantes/', response_model=schemas.EstudanteResponse)
    def create_student(student: schemas.EstudanteCreate, db: Session = Depends(get_db)):
        db_student = models.Estudante(**student.model_dump())
        db.add(db_student)
        db.commit()
        db.refresh(db_student)
        return db_student
    
  • Listar Estudantes:

    @app.get('/estudantes/', response_model=List[schemas.EstudanteResponse])
    def read_students(db: Session = Depends(get_db)):
        students = db.query(models.Estudante).all()
        return students
    

Esses exemplos mostram como você pode definir rotas para interagir com o banco de dados. A ideia é que, ao fazer uma requisição POST, você adiciona um estudante, e ao fazer uma GET, você lista todos os estudantes.

Espero que isso ajude a clarear um pouco o que está sendo feito, mas caso tenha algum ponto específico que você queira saber mais, estarei à disposição para ajudar.

Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.