De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.

Python WEB Deploy no PythonAnywhare (Anaconda)

Colaboração: Daniel de Souza Carvalho

Data de Publicação: 29 de dezembro de 2025

Para prototipar e rapidamente fazer o deploy de aplicações WEB em Python de forma simples, sem precisar gerenciar servidores Linux manualmente, podemos usar o serviço PythonAnywhere (Anaconda), uma plataforma em nuvem que roda tudo no background com Linux, facilitando a vida de desenvolvedores.

O PythonAnywhere é como um ambiente Python pronto para uso, e o melhor: é um serviço da equipe do Anaconda, há planos gratuitos e planos pagos, permitindo criar ambientes virtuais personalizados com bibliotecas científicas e de dados. Mas o foco aqui é no deploy fácil de apps web!

Por que usar PythonAnywhere para deploy?

  • Ambiente Linux no background: Tudo roda no terminal, sem você precisar configurar nada.
  • Suporte nativo a Flask: Framework leve e popular para apps web em Python, para criar WEB APIs em JSON (REST).
  • Banco de dados MySQL integrado: Fácil de configurar, sem instalação extra.
  • Plano gratuito disponível: Perfeito para testes, com domínio básico (seuusuario.pythonanywhere.com).

Passos simples para deploy de app Flask com MySQL:

  1. Crie uma conta gratuita em https://www.pythonanywhere.com/.
  2. No dashboard, vá em "Databases" > MySQL e crie um banco (o nome será algo como seuusuario$meubanco).
  3. Configure o Flask com o instalador rápido da plataforma.
  4. Faça upload do código.
  5. Edite o arquivo WSGI para importar sua app.
  6. Defina as credenciais MySQL no código (use variáveis de ambiente para segurança em produção).

Exemplo de app Flask com consulta ao MySQL

Neste exemplo: a rota principal consulta o banco MySQL para exibir a versão do servidor MySQL e a hora atual do banco (usando SELECT VERSION() e NOW()).

python
from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

# String de conexão (substitua pelos seus valores do dashboard Databases)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+mysqldb://seuusuario:suasenha@seuusuario.mysql.pythonanywhere-services.com/seuusuario$meubanco'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
# Importante: evita conexões perdidas devido ao timeout do PythonAnywhere
app.config['SQLALCHEMY_POOL_RECYCLE'] = 280  # Menos que 300 segundos de timeout

db = SQLAlchemy(app)

@app.route('/')
def index():
   try:
       # Executa consultas simples
       versao = db.session.execute('SELECT VERSION()').scalar()
       hora_atual = db.session.execute('SELECT NOW()').scalar()
       return f"""
       Olá do PythonAnywhere!
       Conexão MySQL funcionando perfeitamente.

           Versão do MySQL: {versao}
           Hora atual no servidor MySQL: {hora_atual}

       Rodando em Linux no background, sem complicação!
       """
   except Exception as e:
       return f"Erro na conexão:{str(e)}"

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

Instale as dependências no virtualenv:

$ pip install flask flask-sqlalchemy mysqlclient (ou mysqldb).

Isso demonstra uma conexão real ao banco! Para projetos maiores, use modelos SQLAlchemy, mas esse exemplo simples mostra dados dinâmicos do MySQL acessível via chamada WEB API.

Ótimo para protótipos, ensino, testes de APIs ou sites leves. Planos pagos dão mais recursos, como domínios customizados e suporte a conda/Anaconda completo.

Fonte: Documentação oficial do PythonAnywhere e Flask-SQLAlchemy.



Veja a relação completa dos artigos de Daniel de Souza Carvalho