Extensões Populares do Flask

Scripts para Instalação de Pacotes Python

Como Extrair Dados de uma Planilha em Python

Extensões Populares do Flask

1. Flask-SQLAlchemy

Para que serve: Adiciona suporte a bancos de dados relacionais através do SQLAlchemy, um ORM (Object-Relational Mapper) poderoso para Python.
O que faz: Facilita a interação com bancos de dados como SQLite, MySQL, PostgreSQL, entre outros, permitindo que você trabalhe com o banco de dados utilizando objetos Python em vez de escrever SQL diretamente.
Instalação:

pip install Flask-SQLAlchemy

Exemplo de uso:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///meubanco.db'
db = SQLAlchemy(app)

class Usuario(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    nome = db.Column(db.String(50), nullable=False)

# Criar o banco de dados
with app.app_context():
    db.create_all()

2. Flask-Migrate

Para que serve: Adiciona suporte para migrações de banco de dados, usando o Alembic, que é um sistema de migrações para SQLAlchemy.
O que faz: Permite que você atualize seu esquema de banco de dados de maneira segura e controlada, acompanhando as mudanças feitas nas suas classes de modelo.
Instalação:

pip install Flask-Migrate

Exemplo de uso:

from flask_migrate import Migrate
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
db = SQLAlchemy(app)
migrate = Migrate(app, db)

3. Flask-WTF

Para que serve: Adiciona suporte avançado para a manipulação de formulários, utilizando o WTForms.
O que faz: Facilita a validação de formulários, geração de campos e controle de CSRF (Cross-Site Request Forgery), que é uma medida de segurança.
Instalação:

pip install Flask-WTF

Exemplo de uso:

from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
from wtforms.validators import DataRequired

class MeuFormulario(FlaskForm):
    nome = StringField('Nome', validators=[DataRequired()])
    enviar = SubmitField('Enviar')

4. Flask-Login

Para que serve: Gerencia autenticação de usuários em aplicações Flask.
O que faz: Fornece ferramentas para login, logout e controle de sessão de usuários, além de proteger rotas que exigem autenticação.
Instalação:

pip install Flask-Login

Exemplo de uso:

from flask_login import LoginManager, UserMixin

app = Flask(__name__)
login_manager = LoginManager(app)

class Usuario(UserMixin):
    # Implementação do usuário aqui
    pass

@login_manager.user_loader
def load_user(user_id):
    return Usuario.get(user_id)

5. Flask-Mail

Para que serve: Facilita o envio de emails a partir de aplicações Flask.
O que faz: Simplifica o envio de emails usando servidores SMTP, o que pode ser útil para enviar notificações, confirmações de cadastro, etc.
Instalação:

pip install Flask-Mail

Exemplo de uso:

from flask_mail import Mail, Message

app = Flask(__name__)
mail = Mail(app)

@app.route("/send-email")
def send_email():
    msg = Message("Assunto do Email", recipients=["destino@example.com"])
    msg.body = "Corpo do email"
    mail.send(msg)
    return "Email enviado!"

6. Flask-Caching

Para que serve: Implementa caching (armazenamento em cache) para aplicações Flask.
O que faz: Melhora a performance armazenando temporariamente respostas de requisições, evitando a execução repetida de operações caras.
Instalação:

pip install Flask-Caching

Exemplo de uso:

from flask_caching import Cache

app = Flask(__name__)
cache = Cache(app, config={'CACHE_TYPE': 'simple'})

@app.route('/')
@cache.cached(timeout=60)
def index():
    return "Esta resposta é cacheada por 60 segundos."

7. Flask-SocketIO

Para que serve: Adiciona suporte para WebSockets em aplicações Flask, permitindo comunicação em tempo real.
O que faz: Permite a criação de aplicações que exigem comunicação em tempo real, como chats ou notificações ao vivo.
Instalação:

pip install Flask-SocketIO

Exemplo de uso:

from flask_socketio import SocketIO

app = Flask(__name__)
socketio = SocketIO(app)

@socketio.on('message')
def handle_message(msg):
    print('Message: ' + msg)

if __name__ == '__main__':
    socketio.run(app)

Scripts para Instalação de Pacotes Python

1. Script Bash para Instalar Extensões Flask e Outros Pacotes


#!/bin/bash

# Atualizar o pip
pip install --upgrade pip

# Instalar extensões Flask
pip install Flask Flask-SQLAlchemy Flask-Migrate Flask-WTF Flask-Login Flask-Mail Flask-RESTful Flask-Caching Flask-Bcrypt Flask-Cors Flask-Session

# Instalar outros pacotes úteis
pip install requests beautifulsoup4 gunicorn pytest coverage

echo "Extensões Flask e outros pacotes foram instalados com sucesso!"

2. Script para Gerar um Arquivo requirements.txt


import subprocess

def generate_requirements():
    with open('requirements.txt', 'w') as f:
        result = subprocess.run(['pip', 'freeze'], capture_output=True, text=True)
        f.write(result.stdout)
    print("Arquivo requirements.txt gerado com sucesso!")

if __name__ == "__main__":
    generate_requirements()

3. Script Bash para Criar um Ambiente Virtual e Instalar Dependências


#!/bin/bash

# Nome do ambiente virtual
VENV_NAME="venv"

# Criar um ambiente virtual
python -m venv $VENV_NAME

# Ativar o ambiente virtual
source $VENV_NAME/bin/activate

# Atualizar o pip
pip install --upgrade pip

# Instalar dependências a partir do requirements.txt
pip install -r requirements.txt

echo "Ambiente virtual criado e dependências instaladas com sucesso!"

4. Script Python para Instalar Dependências de um Arquivo requirements.txt


import subprocess

def install_requirements():
    try:
        with open('requirements.txt', 'r') as f:
            packages = f.read().splitlines()
        for package in packages:
            subprocess.run(['pip', 'install', package], check=True)
        print("Dependências instaladas com sucesso!")
    except Exception as e:
        print(f"Erro ao instalar dependências: {e}")

if __name__ == "__main__":
    install_requirements()

5. Script Bash para Atualizar Todas as Dependências Instaladas


#!/bin/bash

# Atualizar o pip
pip install --upgrade pip

# Atualizar todos os pacotes instalados
pip list --outdated | tail -n +3 | awk '{print $1}' | xargs pip install --upgrade

echo "Todos os pacotes foram atualizados com sucesso!"

Como Extrair Dados de uma Planilha em Python

1. Usando pandas com openpyxl para Arquivos .xlsx


pip install pandas openpyxl

import pandas as pd

# Carregar a planilha
df = pd.read_excel('caminho/para/sua/planilha.xlsx', engine='openpyxl')

# Mostrar as primeiras linhas da planilha
print(df.head())

# Acessar uma coluna específica
print(df['Nome_da_Coluna'])

# Acessar uma célula específica
print(df.at[0, 'Nome_da_Coluna'])  # Linha 0, coluna 'Nome_da_Coluna'

2. Usando pandas com xlrd para Arquivos .xls


pip install pandas xlrd

import pandas as pd

# Carregar a planilha
df = pd.read_excel('caminho/para/sua/planilha.xls', engine='xlrd')

# Mostrar as primeiras linhas da planilha
print(df.head())

# Acessar uma coluna específica
print(df['Nome_da_Coluna'])

# Acessar uma célula específica
print(df.at[0, 'Nome_da_Coluna'])  # Linha 0, coluna 'Nome_da_Coluna'

3. Usando openpyxl para Arquivos .xlsx


from openpyxl import load_workbook

# Carregar a planilha
workbook = load_workbook('caminho/para/sua/planilha.xlsx')

# Selecionar a aba ativa ou uma aba específica
sheet = workbook.active  # ou workbook['Nome_da_Aba']

# Ler dados de uma célula específica
value = sheet['A1'].value
print(value)

# Ler dados de um intervalo de células
for row in sheet.iter_rows(min_row=1, max_row=2, min_col=1, max_col=3):
    for cell in row:
        print(cell.value)

4. Usando xlrd para Arquivos .xls


import xlrd

# Abrir o arquivo Excel
workbook = xlrd.open_workbook('caminho/para/sua/planilha.xls')

# Selecionar a aba ativa ou uma aba específica
sheet = workbook.sheet_by_index(0)  # ou workbook.sheet_by_name('Nome_da_Aba')

# Ler dados de uma célula específica
value = sheet.cell_value(0, 0)  # Linha 0, coluna 0
print(value)

# Ler dados de um intervalo de células
for row in range(sheet.nrows):
    for col in range(sheet.ncols):
        print(sheet.cell_value(row, col))