Postagens

Usando Web2py com outros framesworks pelo uWSGI

Depois de ter acompanhado como instalar o web2py na hospedagem VPS, precisei fazer algumas correções. 1 - Precisei rodar o w2p com outros frames python. 2 - Trazer mais segurança pros apps. 3 - Facilitar a manutenção. Do ponto de vista manutenção, centralizar é sempre o melhor caminho, centralizar e padronizar, porém do ponto de vista segurança a redundância nunca pode ser quebrada, sendo assim necessário descentralizar os apps. O NGINX como vimos usa um usuário www-data para lidar com dados deixando o root como mero admin. Nesse caso, o www-data não possui login válido e só possui permissões para "mexer" naquilo que é dele. Para rodar nossos apps foi preciso usar o uWSGI com o proxy do NGIX e é dessa vantagem que vamos nos valer. Criando um usuário para cada app necessário, usando daemos uwsgi para cada app permitindo assim usar vários virtualenvs diferentes, vamos usar usuários com login válido para "mexer" somente nos aquivos do app evitando logar como root. 1 -

API RESTFul no web2py

 Este artigo é uma cópia do original em http://www.web2pyslices.com/slice/show/1533/restful-api-with-web2py acessado em 06/04/2021 18:55 autor Bruno Rocha Hi,   1. Create an app in web2py admin panel   2. In models/db.py define a table named entries   Entries = db . define_table ( "entries" , Field ( "entry" , "text" )) 3. Register a new user in http://localhost:8000/myapp/default/user/register   4. Go to appadmin http://localhost:8000/myapp/appadmin and Add a couple of entries.   5. now add the RESTful services to the default.py controller as described in  http://goo.gl/iITNd  ('parse_as_rest') or here:  http://goo.gl/ltfa2   @request . restful () def api (): response . view = 'generic.' + request . extension def GET (* args ,** vars ): patterns = 'auto' parser = db . parse_as_rest ( patterns , args , vars ) if parser . status == 200 : return dict ( content = parser . respons

Web2py com NGINX

 Neste artigo falaremos sobre como usar o web2py com NGINX. 1º Passo Em nosso servidor temos o Ubuntu 20.04 Server, vamos nos basear fortemente no script de instalação do web2py setup-web2py-nginx-uwsgi-ubuntu.sh encontrado em scripts na pasta do web2py. Diferente do Apache o NGINX utiliza o padrão UWSGI enquanto no apache usamos o mod_python, não vamos entrar em detalhes, você pode pesquisar sobre a diferença entre os dois depois. Você pode começar rodando o script no seu servidor caso esteja usando uma instalação do zero, depois iremos modificar os arquivos de configuração a nossa maneira. Agora que tudo está instalado é preciso configurar o virtualenv para o projeto. :~$ virtualenv -p /usr/bin/python3 /opt/venv3 2º Passo Diferente do apache o NGIX precisa de um "intermediário" que chama o arquivo wsgihandler de cada ambiente. Então vamos começar modificando as instalações que foram feitas no script. E vamos começar pelo processo uwsgi criado nesse script, modifique-o para

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