Thursday, August 9, 2012

Fazendo um app no Heroku

Fazendo um app no Heroku



Fala pessoal?


Fiquei de colocar aqui no blog os passos os quais utilizei para fazer um currículo digital, pois bem... chegou a hora!


Como eu havia mencionado em uma postagem passada eu utilizei de algumas tecnologias, citarei todas com respectivos links:

  • python
  • virtualenv
    • Permite você criar ambientes separados em python, você pode escolher quais libs instalar, sem tê-las por todo o sistema. Funciona como um container para seu projeto.
  • flask
    • Um micro framework em python, bem simples e rápido, com baterias não inclusas. Mas com muitas baterias a disposição.
  • flask-assets
    • Extensão do flask (uma dessas baterias não inclusas), que permite você agrupar e minificar arquivos estáticos do seu app.
  • mongoengine
    • "The object-document mapper to connect Python and MongoDB". Vai lhe ajudar a melhorar a sua interface de conexão entre o mongohq e seu app!
  • jQuery
    • Se você ainda não usa esta perdendo muito!
  • twitter bootstrap
    • Conjunto de classes css e plugins jquery que vão lhe ajudar a deixar seu app mais bonito e funcional. É esse micro framework jquery é do pessoal do twitter.
  • font awesome
    • Fontes com ícones dos mais diversos, se você olhar não vai mais largar! ahhahahhahaha :D
  • git
    • Ferramenta de versionamento.
  • heroku
    • Nosso fornecedor de IaaS.
  • mongohq
    • Rodar o mongodb nas nuvens! Uhu!


Você pode estar se perguntando, "poxa vida, tenho de aprender tudo isso para colocar algo no ar la no heroku?".
Claro que não, o negócio é que eu quis experimentar um pouco mais, resolvi que iria colocar algumas coisas em um banco de dados noSQL, o que não é necessário.
Enfim, primeiro passo, foi criar localmente um ambiente (ok, não precisa ser apache pra isso, mas eu usei mesmo assim). O legal do flask e outros frameworks em python é que você pode subir um "web server" na linha de comando sem precisar configurar um apache da vida. Isso é um ponto positivo!

Pra colocar um site la no heroku é bem simples, só seguir esse tuto na página deles: Getting Started with Python on Heroku.

Depois de seguir estes passos bem simples do heroku e claro ter feito sua aplicação/site/whatever você pode ativar o mongohq. Para isso é só entrar na interface do heroku e solicitar a ativação do mongohq para sua nova app.
O heroku vai lhe retornar as informações de conexão com o banco, então você os coloca na aplicação. Como eu estou usando flask e o mongoengine, para cadastrar o banco de dados foi simples:




app = Flask(__name__)
app.config["MONGODB_DB"] = "app5632158"
app.config["MONGODB_USERNAME"] = "rdenadai@gmail.com"
app.config["MONGODB_PASSWORD"] = "yhgb2398"
app.config["MONGODB_HOST"] = "staff.mongohq.com"
app.config["MONGODB_PORT"] = "10050"
db = MongoEngine(app)



Bem fácil não? Ainda estou usando o flask-assets que é uma extensão bem bacana que permite você juntar os arquivos css/js em um único só, melhorando assim a performance da sua app na hora de baixar os arquivos estáticos do servidor!

assets = Environment(app)
js = Bundle('jquery.js', 'default.js', 'twitter-bootstrap.js', filters='jsmin', output='gen/packed.js')
css = Bundle('default.css', 'normalize.css', 'font-awesome.css', 'twitter-bootstrap.css', filters='cssmin', output='gen/packed.css')
assets.register('js_all', js)
assets.register('css_all', css)

Feito isso no app.py do seu app, pra utilizar é só ir nos templates e colocar:



{% assets "css_all" %}
<link rel="stylesheet" type="text/css" href="{{ ASSET_URL }}" />
{% endassets %}



{% assets "js_all" %}
<script type="text/javascript" language="javascript" src="{{ ASSET_URL }}"></script>
{% endassets %}

Fazendo estes passos, que achei bem simples (depois que você aprende são bem simples mesmo!), coloquei no ar um app no heroku!


Só não vá correndo contar isso pro seu chefe...

Falowaer


0 comments :

Post a Comment