Sistema Web com Python

3 – Web
3.1 – Backend (servidor)
3.2 – Frontend (transpilado)
3.3 – APIs
3.4 – Templates (Jinja2, Django Templates)
3.1.1 – Sincrono (Django, Flask, FastAPI)
3.1.2 – Assincrono (FastAPI, Sanic, Aiohttp)
3.1.3 – WebSockets (Socket.IO, WebSockets)
3.2.1 – PyScript (roda Python no navegador)
3.2.2 – Brython
3.2.3 – Transcrypt
3.3.1 – REST (requests, Django REST Framework)
3.3.2 – GraphQL (Graphene)
LEGENDA
Nivel_1
Nivel_2
Nivel_3

Um sistema web roda em um servidor remoto. O usuário acessa via navegador com requisições HTTP. Python é excelente para construir o back-end desses sistemas. Existem frameworks maduros como Django e Flask. Cada um atende a diferentes necessidades de projeto. Django entrega uma estrutura completa e pronta. Flask oferece simplicidade e controle direto. A escolha depende da complexidade esperada. Sistemas pequenos se beneficiam da leveza do Flask. Grandes portais corporativos usam Django pela segurança. Esta decisão impacta todo o ciclo de vida do software.

Rotas, views e templates organizados

Uma rota associa uma URL a uma função chamada view. A view processa a requisição e retorna uma resposta. Respostas comuns incluem HTML, JSON ou redirecionamentos. O Flask usa decoradores para declarar rotas facilmente. Exemplo: @app.route('/contato') define o endereço. Parâmetros dinâmicos vêm da própria URL. /usuario/ captura um número como argumento. Templates separam a apresentação da lógica de negócio. O Jinja2 insere dados com {{ variavel }}. Estruturas condicionais usam {% if %} dentro do template. Isso mantém o código Python limpo e focado. Um exemplo funcional mínimo é mostrado abaixo.

Salve o código como webapp.py. Crie uma pasta templates com index.html. Execute com Python e acesse http://localhost:5000. O servidor de desenvolvimento é ótimo para testes locais. Nunca o use diretamente em produção, pois é inseguro.

Banco de dados e modelos ORM

Sistemas web precisam armazenar dados persistentemente. Bancos como SQLite, PostgreSQL ou MySQL resolvem isso. O SQLAlchemy é o ORM mais popular do ecossistema Python. Ele converte classes Python em tabelas de banco relacional. Cada atributo de classe vira uma coluna na tabela. Operações como inserir ou buscar usam métodos simples. Exemplo: db.session.add(objeto) prepara a inserção. db.session.commit() confirma a transação no banco. Consultas usam a sintaxe Modelo.query.filter_by(). Isso elimina SQL escrito manualmente, prevenindo injeção. A configuração inicial exige apenas a URI do banco. Veja um modelo concreto de usuário com SQLAlchemy.

Esse padrão funciona para qualquer sistema web. A camada de dados fica desacoplada do resto da aplicação. Testes se tornam mais fáceis com um banco em memória. Para produção, troque a URI para PostgreSQL ou similar.

Autenticação e implantação final

Autenticação restringe acesso a certas áreas do sistema. O Django já entrega esse mecanismo de fábrica. No Flask, a extensão Flask-Login é a mais adotada. Senhas nunca são armazenadas em texto puro. Use bcrypt para gerar hashes seguros e salgados. A fórmula de hash é \(H = \text{bcrypt}(senha + salt)\). Cookies de sessão recebem assinatura criptográfica. Isso impede que usuários forjem sua identidade. Após pronta, a aplicação precisa ser publicada na internet. Plataformas como Render, PythonAnywhere ou DigitalOcean funcionam. Gere um arquivo requirements.txt com pip freeze. Configure um servidor WSGI como Gunicorn no ambiente final. Variáveis sensíveis (chaves, senhas) ficam em variáveis de ambiente. Nunca as escreva diretamente no código-fonte. Com esses passos, seu sistema web estará seguro e funcional.

Deixe um comentário