Postagens

Mostrando postagens de 2020

Limpando a sujeira para fazer backup

 Boas meus caros a dica de hoje vai pra quem precisa fazer backup e está com problema com arquivos pyc. Para quem não sabe o Python é interpretado e compilado, ou seja ele pode ser interpretado diretamente pelo script ou gerar arquivos pré-comprados como  java e linguagens .Net. O processo de interpretação pode possuir várias etapas, mas imagine que você precise falar com um estrangeiro, se você não conhece a língua falada você precisará de um interprete, certo. Uma linguagem de script como o Python pode executar seus scripts diretamente ou criar arquivos bytecodes, que são arquivos pré-compilados (pré-traduzidos), esses bytecodes ajudam o interpretador a ganhar tempo na execução, assim, quando ele executar o código novamente ele não precisará traduzir rotina por rotina novamente, bastando apenas converter o bytecode para a linguagem de máquina. Mas e o web2py? Todos sabemos que o web2py guarda seu código python nativo na pasta modules e é ali que mora o problema quando falamos de back

Problemas com migrações

Neste artigo vamos falar sobre migrações no Web2py. Todos sabemos que o W2P faz proezas com a DAL mas as vezes temos alguns percalços no caminho. Para fazer o controle do estado das migrações é criado por padrão na pasta databases alguns arquivos com a extensão '.table'. Esses arquivos são responsáveis por armazenar o estado atual da tabela e logo eles são modificados quando fazemos alterações na definição de tabela no código python. De fato esses arquivos são muito úteis porém há momentos em que eles começam a dar problemas. Primeiro de tudo vamos começar mudando nosso código na função define_table passando um argumento migrate='nome_tabela.table'. db.define_table( 'tabela1' ,     Field( 'nome_campo' ,  'string' ),      migrate = 'tabela1.table' ) Isso fará com que o arquivo .table da tabela1 contenha seu nome, isso facilita evita aqueles arquivos redundantes no diretório. O próximo passo é entender como funcionam as migrações do constru

Placeholders em Campos de SQLFORM

Olá, nesse post mostraremos uma forma simples mas bem útil de adicionar placeholders em SQLFORMs no web2py. Um placeholder é aquela dica que fica dentro do input. <input type="text" name="xyz" placeholder="Diga seu nome" /> Eles servem para auxiliar o usuário, há casos onde usar labels como complemento não fica legal, ou ocupa espaço. Então os placeholders entram como um auxiliar. Uma maneira mais profissional e que está diretamente ligada no construtor Field de define_table são criar widgets customizados. def widget (** kwargs ): return lambda field , value , kwargs = kwargs : SQLFORM . widgets [ field . type ]. widget ( field , value , ** kwargs )| db . define_table ( 'reference' , Field ( 'is_enabled' , 'boolean' , default = True , label = T ( 'Enabled' )), Field ( 'name' , 'string' , required = True , length = 256 , label = T ( 'Name' ), widget = widget ( _placeholder = 'One-

Configurar o web2py no Apache e Ubuntu LTS

Para todo desenvolvedor o maior desafio não é produzir código e sim colocar sua aplicação para rodar de fato de verdade, por isso é essencial conhecer todos os passos para fazer o deploy de sua aplicação em ambientes de produção. Este artigo será composto por este principal e outros dois explicando a teoria envolvendo o processo. Neste artigo explicaremos em forma de tutorial como fazer o deploy de uma aplicação web2py tem um servidor Apache usando virtual hosts. Antes de prosseguirmos é importante fazer algumas considerações. 1- O web2py é um framework baseado no padrão WSGI (Web Server Gateway interactive), um avanço no antigo CGI, portanto vamos precisar de um arquivo intermediário entre o módulo wsgi do apache e o framework, chamado de handler. 2- O Apache ainda é o servidor WEB mais utilizado no mercado por tanto há vasta documentação espalhada por aí, logo não será muito difícil dar manutenção nele. 3- O Ubuntu também é a distro linux mais usada no mundo desktop portanto não tere

Solucionando o problema com 'Column table.id not found (SQLTABLE)'

O novo PY4WEB esta aí, e como é um framework diferente do web2py, é possível ser instalado através do pip. O problema não é ser instalado pelo pip e sim os módulos que são os mesmos do web2py. Um deles é o pydal, o pydal é nada mais nada menos que a DAL do web2py, sendo o DAL uma abstração do pydal. Ao instalarmos o py4web no mesmo virtualenv que roda o web2py o pydal acaba conflitando com o DAL gerando aquele erro. Então o que fazer para resolver? Simples, crie um virtualenv separado para o web2py. Exemplo: $ virtualenv -p path_python venvW2P $ virtualenv -p path_python venvP4W Esses dois comandos criarão ambientes separados para cada frame. O que se deve fazer agora é apontar o venvW2P para o web2py ou trocar o caminho do interpretador python do arquivo web2py.py. Assim: #!/usr/bin/env python  por: #!path_to_venvW2P Pronto! Resolvido o problema. Referencias: https://groups.google.com/forum/#!searchin/web2py/Column$20auth_user.id$20not$20found$20(SQLTABLE)%7Csort:date/web2py/oriec4bEA

Guia de estilos para Python

Bom galera, esse artigo vai ser curto, mas como muitos programadores quem começam no web2py vem de outras linguagens, eles trazem junto os vícios dessas linguagens. Não que seja errado a forma de programar mas cada uma delas estabelece um padrão para facilitar a legibilidade do código. E no python não é diferente. Python foi feito para humanos, então subentende-se que humanos podem ser experts ou não. Imagine você lendo um artigo no jornal escrito da seguinte maneira. CasaBrancaArdeEmChamas Hoje,na   CasaBranca ocorreram         inumeros atentados O presidente,DonaldTrump                 convocou a GuardaNacional Repare que o artigo desrespeita completamente a sintaxe do português e de regras de boa escrita. Imagine se cada um escrevesse código como bem entende. Como python é uma linguagem flexível para solucionar esse problema foi desenvolvido a pep8 ->  https://wiki.python.org.br/GuiaDeEstilo . A pep8 é um guia de estilos para python que visa padronizar o código escrito em python,

Using multiple web2py templates

Okay, today we are going to talk about templates and multiple views on web2py. This tip will be valid for you who want dynamic templates in your app, where you can easily change it whenever you want, passing parameters in the appconfig or something like that. The idea is very basic, you have a repository of templates inside views where you will put your layouts inside, for example temp01, temp02 ... We will also take the opportunity to learn a little more about the web2py (W2P) template engine (TE) called yatl in the new py4web. Come on... The W2P TE allows us to inherit views and inclusions through the reserved words extend and include respectively. But if they are reserved words, aren't they python code? Exactly, extend and include and also block are not python code, so they are executed before any python code in our view. That is, the code below will never work. {{if condition:}} {{extend 'temp01.html'}} {{else:}} {{extend 'temp02.html}} Not even that. {{from gluon.c