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.