Aprenda a desenvolver, testar e implantar aplicações Flask profissionais do zero à produção.
Flask é um framework web leve e flexível para Python que oferece simplicidade sem sacrificar poder. Ideal para prototipagem rápida e aplicações de produção escaláveis.
Microframework
Extensível
Desenvolvimento ágil
Boas práticas
Passo a passo para configurar e desenvolver sua aplicação Flask
Instale Python, crie um ambiente virtual e instale Flask.
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
pip install flask
Organize seu projeto com uma estrutura clara e escalável.
meu_app/
├── app/
│ ├── __init__.py
│ ├── routes.py
│ ├── models.py
│ └── templates/
├── config.py
├── requirements.txt
└── run.py
Configure sua aplicação Flask com boas práticas.
# app/__init__.py
from flask import Flask
def create_app():
app = Flask(__name__)
app.config.from_object('config.Config')
from .routes import main
app.register_blueprint(main)
return app
Organize suas rotas usando Blueprints para melhor manutenção.
# app/routes.py
from flask import Blueprint, render_template
main = Blueprint('main', __name__)
@main.route('/')
def index():
return render_template('index.html')
Configuração e uso do SQLAlchemy com Flask
SQLAlchemy é o ORM mais popular para Python e integra perfeitamente com Flask.
# config.py
class Config:
SQLALCHEMY_DATABASE_URI = 'sqlite:///site.db'
SQLALCHEMY_TRACK_MODIFICATIONS = False
# app/models.py
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
Gerencie alterações no esquema do banco de dados com facilidade.
pip install Flask-Migrate
# Inicializar migrações
flask db init
# Criar migração
flask db migrate -m "Adicionar tabela de usuários"
# Aplicar migração
flask db upgrade
Implemente testes automatizados para garantir a qualidade do seu código
Teste funções e métodos individuais usando pytest ou unittest.
Teste a interação entre componentes usando o cliente de teste do Flask.
Use ferramentas como flake8, black e mypy para manter a qualidade do código.
# tests/test_app.py
import pytest
from app import create_app
@pytest.fixture
def client():
app = create_app()
app.config['TESTING'] = True
with app.test_client() as client:
yield client
def test_home_page(client):
response = client.get('/')
assert response.status_code == 200
assert b'Bem-vindo' in response.data
Estratégias e melhores práticas para implantar sua aplicação Flask
Crie configurações específicas para produção com variáveis de ambiente.
# config.py
class ProductionConfig(Config):
DEBUG = False
SECRET_KEY = os.environ.get('SECRET_KEY')
SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL')
Use Gunicorn ou uWSGI em vez do servidor de desenvolvimento do Flask.
# Instalar Gunicorn
pip install gunicorn
# Executar com Gunicorn
gunicorn -w 4 -b 0.0.0.0:8000 run:app
Configure Nginx como proxy reverso para melhor desempenho e segurança.
# /etc/nginx/sites-available/meu_app
server {
listen 80;
server_name meuapp.com;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Use Supervisor ou systemd para gerenciar o processo da sua aplicação.
# /etc/supervisor/conf.d/meu_app.conf
[program:meu_app]
command=/path/to/venv/bin/gunicorn -w 4 run:app
directory=/path/to/app
user=www-data
autostart=true
autorestart=true
Recomendações essenciais para aplicações Flask em produção
Ferramentas e práticas para manter sua aplicação saudável