Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Pyramid Hello World + Heroku

Pyramid Hello World + Heroku

Avatar for Maximiliano Guerra de Medeiros

Maximiliano Guerra de Medeiros

November 07, 2014

Other Decks in Programming

Transcript

  1. Instalando pythonz brew install python3 # pyvenv vem com o

    python3 ! pyvenv .../envs/pyramid_tutorial source .../envs/pyramid_tutorial/bin/activate wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py -O - | python
  2. Instalando libz # basico easy_install "pyramid==1.5.1" # opcionais nose coverage

    webtest deform sqlalchemy pyramid_jinja2 pyramid_debugtoolbar waitress
  3. app.py - imports from pyramid.confg import Confgurator from pyramid.response import

    Response from wsgiref.simple_server import make_server # from waitress import serve
  4. app.py (cont) def hello_world(request): print('Incoming request') return Response('Hello world!') if

    __name__ == '__main__': confg = Confgurator() confg.add_route('hello', '/') confg.add_view(hello_world, route_name='hello') app = confg.make_wsgi_app() server = make_server('0.0.0.0', 6543, app) server.serve_forever() # serve(app, host= '0.0.0.0', port=6543)
  5. Heroku – Instalação e criação # Instale o heroku toolbelt

    # Entre na pasta do seu projeto git $ heroku login $ heroku create nome_da_app # ja adiciona isso no .git/confg: [remote "heroku"] url = [email protected]:nome_da_app.git fetch = +refs/heads/*:refs/remotes/heroku/*
  6. Herokando - Deploy e teste # Fazendo deploy $ git

    push heroku master ...plim! (ja?!) # comando conveniente para abrir o site $ heroku open
  7. Heroku – Comandos úteis $ heroku ps:scale web=1 $ heroku

    apps === My Apps nome_da_app $ heroku logs --tail $ heroku ps === web (1X): `python app.py` web.1: idle 2014/10/08 20:11:14
  8. Heroku – Comandos avançados $ heroku addons:add papertrail $ heroku

    addons:open papertrail $ heroku confg:set TIMES=2 $ heroku confg == sharp-rain-871 Confg Vars PAPERTRAIL_API_TOKEN: erdKhPeeeehIcdfY7ne TIMES: 2
  9. Heroku – Rodando comandos $ heroku run bash Running `bash`

    attached to terminal... up, run.1602 ~ $ ls app.py Procfle requirements.txt runtime.txt
  10. Heroku – Pegadinha do malandro • O heroku atribui uma

    porta para a sua aplicação, então aquela porta “6543” que passamos na aplicação não adianta de nada. • No deploy a aplicação vai dar crash no BOOT e você vai ficar sem entender o que há de errado numa aplicação tão simples.
  11. Resolvendo a pegadinha • Ele atribui o valor da porta

    à configuração PORT # app.py try: port = sys.argv[1] except IndexError: port = 8080 serve(app, host="0.0.0.0", port=port) # Procfle web: python app.py ${PORT}