Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Reclamação] Falta de profundidade

Estou gostando bastante do curso e, até a aula 5, estava conseguindo acompanhar e entender bem o conteúdo. Porém, na aula 6, principalmente na parte do main.py, senti bastante dificuldade.

Foram adicionadas várias funções e códigos novos, mas senti falta de uma explicação mais detalhada sobre o que está sendo feito e o motivo de cada parte. Em alguns momentos, parece que ficamos apenas copiando o código que o professor escreve na tela, sem entender de fato a lógica por trás dele.

Isso acaba sendo frustrante, principalmente para quem está aprendendo, pois consigo reproduzir o código, mas não sinto que estou realmente entendendo o conteúdo. Acho que explicações um pouco mais aprofundadas nessa parte ajudariam bastante a acompanhar o curso.

1 resposta

Olá, Victor! Como vai?

Agradeço pelo seu feedback.

Irei registrar suas observações para que sejam consideradas pela equipe de criação dos cursos.

Além disso, vamos tentar esclarecer um pouco mais sobre o que está acontecendo no main.py e por que cada parte é importante.

  1. Importações: No início do arquivo, importamos várias bibliotecas e módulos. Isso é essencial porque cada uma delas traz funcionalidades específicas que usaremos ao longo do código. Por exemplo, FastAPI é o framework que nos permite criar a aplicação web, enquanto Session da SQLAlchemy é usado para gerenciar as transações com o banco de dados.

  2. Configuração do Banco de Dados: Quando chamamos models.Base.metadata.create_all(bind=engine), estamos dizendo ao SQLAlchemy para criar todas as tabelas definidas nos nossos modelos no banco de dados, se elas ainda não existirem. Isso é crucial para garantir que o banco de dados esteja pronto para receber dados.

  3. Função get_db: Essa função é um gerenciador de contexto para a sessão do banco de dados. Ela abre uma sessão, permite que façamos operações no banco e garante que a sessão seja fechada corretamente, evitando vazamentos de conexão.

  4. Rotas e Funções: As rotas definem os "caminhos" que a nossa aplicação responde. Por exemplo, @app.post('/estudantes/') define uma rota que aceita requisições POST para criar novos estudantes. A função create_student é responsável por receber os dados do novo estudante, criar um objeto de estudante no banco de dados e retornar o estudante criado.

  5. Validação e Conversão de Dados: Usamos esquemas do Pydantic para validar e converter os dados que chegam nas requisições. Isso garante que estamos sempre lidando com dados no formato esperado, o que é importante para evitar erros.

Para entender melhor, tente fazer pequenas alterações no código e veja como elas afetam o comportamento da aplicação.

Se sentir dúvida em mais alguma coisa, fique à vontade para abrir tópicos com outras dúvidas.

Espero ter ajudado e fico à disposição se precisar.

Abraço e bons estudos!

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