/python-web-api

https://cursodepython.com.br

The UnlicenseUnlicense

Python Web e Api

https://cursodepython.com.br

Python focado no desenvolvimento de backend para web e APIs usando os principais frameworks do mercado como Django, Flask e FastAPI, neste treinamento criaremos um mesmo projeto cobrindo as principais necessidades do mercado web e usando os 3 principais frameworks.


Conteudo:

Grade sujeita a pequenas alterações como inclusão de tópicos e mudançá de ordem.

Day 1 - Introdução a web e HTTP

Uma introdução para quem já tem noções de programação (ex: Já fez o treinamento Python BASE) e irá iniciar pela primeira no ambiente web, nesta parte falaremos sobre os conceitos primários da web como introdução aos principais protocolos e tecnologias e o funcionamento do modelo cliente-servidor.

  1. HTML e CSS
  2. Os principais componentes da arquitetura web client-server
  3. O protocolo HTTP
  4. Server Side Rendering
  5. URLs e formulários com HTML puro e CGI
  6. Processando requests com a lib WSGI embutida no Python
  7. Renderizando templates HTML com Jinja2
  8. O que é uma API e o que é REST?
  9. Criando um mini framework

Day 2 - Conhecendo os frameworks web

Criar web apps com Python puro é divertido mas para melhor produtividade e padronização é sempre bom usar um framework bem estabelecido no mercado de tecnologia, nesta parte vamos conhecer os 3 principais e fazer um pequeno aplicativo em cada um deles.

  1. Motivos para usar e diferentes tipos de frameworks
  2. Criando um aplicativo simples usando os 3 principais frameworks
    • a. Flask / FastAPI / Django
      • a. Roteamento de URLS e views
      • b. Processamento de requests
      • c. Sessions e Cookies
      • d. Templates HTML
      • e. Adicionando bancos de dados SQL
      • f. Plugins e ferramentas administrativas
      • g. API Rest com JSON
  3. Dicas para escolher o melhor framework para o seu projeto

Day 3 - Colocando a app para rodar (a.k.a deploy)

Nesta parte vamos colocar uma das aplicações que desenvolvemos em produção usando as principais stacks de tecnologia.

  1. Os protocolos web do Python - WSGI e ASGI 00 12 factors
  2. Os principais app servers para Python - gunicorn, uvicorn, uwsgi
  3. Configuração do proxy reverso - NGinx
  4. Serviços e configuração para Deploy em VM e VPS
  5. Containerizando uma aplicação Python
  6. Rodando a app no Kuberneters

Day 4 - Criando um projeto completo com o FastAPI

Entre os 3 frameworks principais do Python o que tem se mostrado mais eficiente em termos de escalabilidade e modernização é o FastAPI e como ele segue a mesma filosofia do Flask iremos utilizar ele para desenvolver o nosso projeto do treinamento.

  1. Diferenças entre Sync e Async
  2. Estruturando uma aplicação com FastAPI
  3. Python moderno e o sistema de anotação de tipos
  4. Banco de Dados e gestão de migrations
  5. Preparando o projeto para testes e configurando o CI
  6. O que é Injeção de Dependencias
  7. Entendendo o fluxo de uma aplicação FastAPI/Starlete
  8. Roteamento de URLS
  9. Processamento de requests
  10. Middlewares

Day 5 - Segurança e Autenticação

Nesta parte falaremos sobre login e dicas de segurança para a aplicação.

  1. Tipos de autenticação
  2. Criptografia de credenciais
  3. JWT e tokens
  4. SSO e Oauth
  5. Dicas de segurança no processando de requests
  6. Monitoramento

Day 6 - Site, Admin e templates

Vamos focar em um site tradicional com páginas html, templates e interface administrativa.

  1. Responses com renderização de templates
  2. Formulários HTML
  3. Servindo arquivos estáticos
  4. Streaming e Download
  5. Upload de arquivos
  6. Usando plugins para administração via web
  7. Usando plugins para administração via cli

Day 7 - REST API

Nesta parte vamos falar em detalhes sobre APIs e REST.

  1. URLs e modelagem RESTful
  2. Serializers
  3. OpenAPI spec
  4. Ferramentas para teste de API
  5. Implementando autenticação
  6. Performance de APIs

Day 8 - Outros protocolos e serviços

  1. Tasking System - Processamento em background
  2. Protocolo web sockets
  3. Serverless web applications