Postagens

Mostrando postagens de maio, 2020

Como separar ambientes de teste e produção no web2py

Neste artigo falaremos sobre como é fácil separar ambientes no web2py. Para todo trabalho profissional é necessário diferenciar o ambiente de desenvolvimento do de testes e do ambiente de produção. Isso faz com que erros grotescos como corromper os dados, derrubar uma aplicação no meio do seu pico entre outras que custaram seu emprego sejam evitadas. O Web2py não vem por padrão com esta configuração, mas nos deixa disponível um arquivo chamado appconfig.ini dentro da pasta private. Neste arquivo por padrão temos a URI de conexão com banco de dados, email do master do site, padrão de formulários entre outros. Podemos chamar este arquivo de configuração importando o módulo abaixo from  gluon.contrib.appconfig  import  AppConfig myconf = AppConfig( reload = True ) #reload=True recarrega esse arquivo a cada request E acessar uma configuração com in_maintance = myconf.get( 'app.maintance' ) Veja como é esse arquivo por padrão ; App configuration [app] name         = Welcome author

Formulários customizados e Recaptcha

Imagem
Hoje vamos falar sobre captcha e formulários customizados, por algum motivo o web2py não disponibiliza o widget do captcha no form custom. Então vamos mostrar uma solução simples e que lhe permitirá criar seus formulários mais bonitos. Em resumo! Um captcha é um controle de imagem usado para evitar que robos driblem o formulário e consigam enviar dados no formulário. O web2py usa o recaptcha na versão 2 do google, infelizmente se você quiser usar outro recaptcha terá que usar ele diretamente na view. Assunto para outro post. http://web2py.com/books/default/chapter/31/09/access-control#-CAPTCHA-e-reCAPTCHA from gluon.tools import Recaptcha2 auth . settings . captcha = Recaptcha2 ( request , 'PUBLIC_KEY' , 'PRIVATE_KEY' ) Ao habilitar o captcha no auth você verá ele funcionando ao invocar o form na view. user.html {{extend 'layout.html'}}      < div   class = "container-fluid" >        < div   class = "row" >          &l