Flask microframework web Python
pythonwebapi
🚀 Setup Básico
| Instalar Flask | pip install flask |
| App mínimo | from flask import Flask |
| Executar em modo debug | export FLASK_ENV=development |
| Configurar host/porta | app.run(host='0.0.0.0', port=5000, debug=True) |
| Blueprint básico | from flask import Blueprint |
| Registrar blueprint | from routes.api import bp |
📡 Rotas & Métodos HTTP
| Rota com parâmetro | @app.route('/user/<int:user_id>') |
| Rota POST com JSON | from flask import request, jsonify |
| Upload de arquivo | @app.route('/upload', methods=['POST']) |
| Redirecionamento | from flask import redirect, url_for |
| Página 404 customizada | @app.errorhandler(404) |
| Middleware básico | @app.before_request |
🗄️ Banco de Dados
| SQLAlchemy setup | from flask_sqlalchemy import SQLAlchemy |
| Modelo User | class User(db.Model): |
| Criar tabelas | with app.app_context(): |
| Inserir registro | user = User(name='João', email='joao@email.com') |
| Consultar registros | users = User.query.all() |
| Flask-Migrate | flask db init |
🔐 Autenticação & Segurança
| Flask-Login setup | from flask_login import LoginManager, UserMixin, login_user |
| Classe User com Login | class User(UserMixin, db.Model): |
| JWT com Flask-JWT-Extended | from flask_jwt_extended import JWTManager, create_access_token |
| CORS setup | from flask_cors import CORS |
| Rate limiting | from flask_limiter import Limiter |
| Validar entrada com WTForms | from wtforms import Form, StringField, validators |
🧪 Testes & Deploy
| Teste básico com pytest | def test_home(client): |
| Fixture para app de teste | @pytest.fixture |
| Deploy com Gunicorn | gunicorn --bind 0.0.0.0:8000 wsgi:app |
| Dockerfile básico | FROM python:3.9-slim |
| Configuração por ambiente | class Config: |
| Logging básico | import logging |