Repositorio padrão para desenvolvimento de páginas WEB usando Flask
Um projeto Flask organizado com:
- Rotas separadas
- Sistema de logs
- Templates (HTML + CSS)
- Estrutura escalável
- Suporte a variáveis de ambiente (.env)
- Docker e Docker Compose prontos para DEV/PROD
- Python 3.8+
- Pip (gerenciador de pacotes)
- Docker (opcional, mas recomendado)
-
Clone o repositório:
git clone https://github.com/seu-usuario/meu_flask_app.git cd meu_flask_app -
(Opcional) Crie um ambiente virtual (recomendado):
python -m venv venv # Ative o ambiente: # Linux/Mac: source venv/bin/activate # Windows: venv\Scripts\activate
-
Instale as dependências:
pip install -r requirements.txt
-
Configure variáveis de ambiente:
-
Copie o arquivo de exemplo:
cp .env.example .env
-
Edite o arquivo
.envconforme necessário.
-
-
Execute o servidor:
python server.py
-
Acesse no navegador:
-
Build e up do container de desenvolvimento:
docker compose -f docker-compose.dev.yml up --build
-
Acesse no navegador:
-
Build e up do container de produção:
docker compose -f docker-compose.prod.yml up --build
-
Acesse no navegador:
- Use
requirements-dev.txtpara desenvolvimento e testes. - Use
requirements-prod.txtpara produção (inclui Gunicorn).
meu_flask_app/
├── server.py # Ponto de entrada
├── requirements.txt # Dependências
├── Dockerfile # Imagem Docker
├── docker-compose.yml # Orquestração Docker
├── .env.example # Exemplo de variáveis de ambiente
├── app/
│ ├── __init__.py # Configuração do Flask
│ ├── routes.py # Rotas principais
│ └── logging_config.py # Configuração de logs
│ └── static/ # CSS/Imagens
│ └── templates/ # Páginas HTML/componentes
├── logs/ # Arquivos de log
└── tests/ # Testes automatizados- Adicionar Blueprints: Para rotas modulares.
- Banco de Dados: SQLAlchemy + SQLite/PostgreSQL.
MIT (use como quiser!)
-
O projeto usa variáveis de ambiente para segredos e configurações.
-
Exemplo de
.env:SECRET_KEY=sua-chave-secreta FLASK_ENV=development
-
O arquivo
.env.exampleserve como modelo.
- O Dockerfile usa Debian 12 e Python 3.12.
- O docker-compose já mapeia variáveis do
.enve faz bind do código para hot reload em DEV.
- Tente acessar uma rota inexistente (ex:
http://localhost:5000/rota-que-nao-existe). - Verifique o arquivo
logs/erros.log– ele registrará o erro 404 automaticamente.
-
Para produção, gere uma chave secreta forte com o comando abaixo:
python -c "import secrets; print(secrets.token_urlsafe(32))"Copie o valor gerado e coloque no seu
.env:SECRET_KEY=coloque_aqui_o_valor_gerado
- Nunca use
FLASK_ENV=developmentem produção. - Use um servidor WSGI robusto, como Gunicorn ou uWSGI, em vez do servidor embutido do Flask.
- Configure variáveis de ambiente seguras e nunca exponha seu
.env. - Considere usar um proxy reverso (Nginx, Traefik) para HTTPS e balanceamento de carga.
- Mantenha suas dependências atualizadas e monitore vulnerabilidades.
- Desabilite o modo debug em produção (
FLASK_DEBUG=0).