Scripts para Instalação de Pacotes Python
Como Extrair Dados de uma Planilha em Python
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()
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)
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')
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)
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!"
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."
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)
#!/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!"
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()
#!/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!"
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()
#!/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!"
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'
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'
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)
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))