Bottle – microframework Python para APIs

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Bottle: Guia Completo do Microframework Python

Introdução ao Bottle

Bottle é um microframework minimalista em Python para criar aplicações web e REST APIs. Todo o framework é escrito em um único arquivo com menos de 100 KB, tornando-o ideal para projetos pequenos, protótipos, sistemas embarcados e microsserviços. O Bottle fornece todos os componentes necessários para executar uma aplicação web completa sem dependências externas.

Características e Vantagens do Bottle

Leveza e Simplicidade

Bottle não requer dependências externas e pode ser instalado com um único comando. O framework ocupa apenas um arquivo, facilitando a implantação e a compreensão do código.

Funcionalidades Integradas

  • Servidor HTTP integrado para desenvolvimento
  • Template engine próprio SimpleTemplate Engine
  • Suporte a WSGI para implantação em produção
  • Detecção automática de tipos de parâmetros de rota
  • Manipulação de JSON, formulários, arquivos e cookies

Flexibilidade de Arquitetura

Bottle é compatível com qualquer biblioteca Python para bancos de dados, template engines e servidores WSGI. Isso permite integrá-lo facilmente em sistemas existentes.

Instalação e Configuração Básica

Instalando o Bottle

pip install bottle

Criando a Primeira Aplicação

Crie o arquivo app.py:

from bottle import route, run

@route('/')
def index():
    return "Olá do Bottle!"

@route('/hello/<name>')
def greet(name):
    return f"Olá, {name}!"

if __name__ == "__main__":
    run(host='localhost', port=8080, debug=True)

Executando a Aplicação

python app.py

A aplicação estará disponível em http://localhost:8080

Roteamento e Manipulação de Requisições

Rotas Básicas

from bottle import route, get, post, put, delete

@route('/')
def home():
    return "Página inicial"

@get('/users')
def get_users():
    return "Lista de usuários"

@post('/users')
def create_user():
    return "Criando usuário"

@put('/users/<id:int>')
def update_user(id):
    return f"Atualizando usuário {id}"

@delete('/users/<id:int>')
def delete_user(id):
    return f"Deletando usuário {id}"

Parâmetros de Rota

Bottle suporta diferentes tipos de parâmetros:

@route('/user/<id:int>')
def user_by_id(id):
    return f"Usuário ID: {id}"

@route('/article/<slug:path>')
def article_by_slug(slug):
    return f"Artigo: {slug}"

@route('/price/<amount:float>')
def price(amount):
    return f"Preço: {amount}"

@route('/profile/<username:re:[a-zA-Z0-9_]+>')
def profile(username):
    return f"Perfil: {username}"

Manipulando Parâmetros de Query

from bottle import request

@route('/search')
def search():
    query = request.query.get('q', '')
    category = request.query.get('category', 'all')
    return f"Buscando '{query}' na categoria '{category}'"

Trabalhando com Dados da Requisição

Manipulando Formulários

from bottle import request, post

@post('/submit')
def submit_form():
    name = request.forms.get('name')
    email = request.forms.get('email')
    age = request.forms.get('age', type=int)
    
    return f"Dados recebidos: {name}, {email}, {age}"

Trabalhando com JSON

from bottle import request, response

@post('/api/data')
def handle_json():
    data = request.json
    
    # Processando dados
    result = {
        'status': 'success',
        'received': data,
        'message': 'D                    

Recommendations