Curso web2py

Deploy na PythonAnywhere

PythonAnywhere é um ambiente de desenvolvimento e hospedagem que roda em servidores cloud. Ele já tem tudo preparado para rodar Python e suporta especificamente o web2py. O ambiente é fácil de usar, rápido e poderoso. Além disso, dispõe de banco de dados MySQL, shells de Python e integração com Dropbox. Hospedagem profissional está disponível se o plano básico gratuito não for suficiente pra você.

Para usar a PythonAnywhere você precisa criar uma conta, fazer o login e então acessar a Dashboard.

Configurando a conta

  1. Acesse a aba Web
  2. Clique em "Add a new web app"
  3. Selecione a opção web2py
  4. Insira a senha da sua conta
  5. Acessa a aba Consoles
  6. Caso você não tenha um console, inicie um Bash
  7. Dentro do console, instale o web2py:
     wget http://www.web2py.com/examples/static/web2py_src.zip
     unzip web2py_src.zip
    
  8. Ainda dentro do console, crie a senha de administrador do web2py
     python -c "from gluon.main import save_password; save_password(raw_input('admin  password: '),443)"
    
  9. Volte à aba Web e edite o arquivo "/var/www/_pythonanywhere_com_wsgi.py:

     import sys
     path = '/home/<username>/web2py'
     if path not in sys.path: sys.path.append(path)
     from wsgihandler import application # the web2py handler
    

    Onde <username> deve ser seu nome de usuário da PythonAnywhere.

  10. Acesse o web2py pela URL: http://seu_nome_de_usuario.pythonanywhere.com/

Instalando a aplicação

  1. Acesse a interface de administração do web2py no seu localhost.
  2. Nas opções da sua aplicação, vá em Manage > Pack all. Será feito o download de um arquivo compactado da sua aplicação.
  3. Na URL do web2py na PythonAnywhere, acesse a interface de administração e informe a senha que você cadastrou: http://seu_nome_de_usuario.pythonanywhere.com/admin
  4. No menu lateral direito, faça o upload da sua aplicação a partir do arquivo compactado que você fez o download.
  5. Volte ao console Bash da PythonAnywhere e acesse a pasta do web2py
    >>> cd web2py
    
  6. Crie um arquivo routes.py
    >>> pico routes.py
    
  7. Insira o código da sua configuração de rotas. Por exemplo:
    routers = dict(
    BASE  = dict(default_application='sua_app',
                 default_controller='default'),
    )
    
  8. Volte à interface de administração do web2py a partir da URL da PythonAnywhere.
  9. Clique em "Reload routes".
  10. Acesse sua aplicação pela URL: http://seu_nome_de_usuario.pythonanywhere.com

Tudo pronto, sua aplicação está no ar!