Recentemente realizei um projeto onde utilizei o Flask como framework web. A decisão de usar o Flask no lugar do Django foi devido ao site não precisar de muitos dos recursos que o Django oferece por ser um framework fullstack. Por outro lado, o Flask é um microframework que oferece alguns recursos como:

  • Excelente documentação
  • Utiliza o Jinja2 para os templates
  • Um servidor para desenvolvimento e debug
  • Suporte integrado à unit tests

Nesse post veremos como fazer o deploy de uma aplicação Flask no Dreamhost.

Sem mais delongas vamos ao que interessa. Primeiro é extremamente recomendável que você instale uma versão mais atualizada do Python, virtualenv e virtualenvwrapper em sua conta no Dreamhost. Para instalar o Python e as demais ferramentas consulte o post que descreve a instalação.

A partir de agora será considerado que o Python, virtualenv e virtualenvwrapper estejam instalados. Em seguida iremos criar um virtualenv para o deploy de uma aplicação de exemplo, para isso utilize o seguinte comando:

mkvirtualenv projeto

O virtualenv será criado e já será ativado. Agora precisamos instalar o Flask, que pode ser feito com o seguinte comando:

pip install flask

Com isso está tudo certo para configurar o domínio no painel de controle do Dreamhost. Lembre-se que para rodar aplicações em Python o “Web directory” deverá terminar em “public”, por exemplo, “exemplo.com.br/public” e o Passenger deve estar ativado para o domínio.

Uma vez configurado o domínio no painel de controle e assumindo que o domínio configurado foi “projeto.com.br”, acesse o diretório:

cd projeto.com.br

Criaremos e entraremos no diretório do projeto

mkdir projeto && cd projeto

Em seguida iremos criar o módulo para nossa aplicação, para isso edite o arquivo projeto.py com o seguinte conteúdo:

from flask import Flask
app = Flask(__name__)

@app.route('/')
def index():
return 'Hello Flask application!'

Isso já é o suficiente para verificarmos que nossa aplicação está sendo executada corretamente. Volte para o diretório do domínio projeto.com.br

cd ..

Em seguida o arquivo passenger_wsgi.py deverá ser editado com o seguinte conteúdo:

import os
import sys

INTERP = os.path.join(os.environ['HOME'], '.virtualenvs', 'projeto', 'bin', 'python')
if sys.executable != INTERP: os.execl(INTERP, INTERP, *sys.argv)
sys.path.append(os.getcwd() + '/projeto')

from projeto import app as application

Concluímos assim o deploy de nossa aplicação em Flask. Para verificar se está tudo certo, basta acessar no navegador o domínio e verificar se será exibido a mensagem “Hello Flask application!”.

Caso encontre algum problema deixe um comentário. Até a próxima.