Postagens

Mostrando postagens de abril, 2020

Consulta com ALIAS usando DAL

A DAL é um recurso muito útil para manipulação de banco de dados pois se aproxima ao máximo da sintaxe SQL que conhecemos. Em determinados casos precisamos retornar em uma consulta valores pré processados como no exemplo abaixo. select tabela.valor*tabela.quantidade from tabela where tabela.campo = 'isto'; A DAL permite que façamos isso no seu construtor select(), no momento em que devemos passar os campos que desejamos retornar na consulta. Exemplo db.define_table(     'itens'     , Field('price')     , Field('quantity') ) resultado = db().select(db.itens.ALL) Veja que omitimos os parâmetros de db(), pois ali é o onde vai nosso WHERE, o db.person.ALL é o mesmo que o '*' do SQL. Se precisarmos retornar por exemplo o valor de quantidade multiplicado pelo preço, fazendo um subtotal, precisaríamos do seguinte subtotal = db.itens.price*db.itens.quantity fields = db.itens.ALL # ALL é uma lista com o nome dos campo

Recursive select with web2py

In this article we will deal with a somewhat well-known but unexplained subject. This tip applies not only to web2py but to anyone who needs to organize their data into tree structures using data from the database.  http://www.web2py.com/books/default/chapter/31/06/data-abstruction-layer#-Recursive-select-s . db.define_table('thing', Field('name'), Field('owner_id', 'reference person')) The web2py documentation proposes the following table structure and how to recursively select this data. person = db.person(id) for thing in person.thing.select(orderby=db.thing.name): print person.name, 'owns', thing.name The fact is that if we do the db (). Select () command it will create a new database connection and so as many times as needed. If we think of a system that receives several visitors per minute (or second), even a table with little data would overload our application. So which one is ideal?

Select recursivo web2py

Neste artigo vamos tratar um assunto um tanto conhecido porém pouco explanado. Esta dica vale não somente para web2py mas para qualquer outro que precise organizar seus dados em estruturas de arvore usando dados vindos do banco. http://www.web2py.com/books/default/chapter/31/06/a-camada-de-abstracao-do-banco-de-dados#-Recursivo-select-s db.define_table('thing', Field('name'), Field('owner_id', 'reference person')) A documentação do web2py propõe a seguinte estrutura de tabela e a seguinte forma para fazer um select recursivo nesses dados. person = db.person(id) for thing in person.thing.select(orderby=db.thing.name): print person.name, 'owns', thing.name O fato é que se fizermos o comando db().select() ele irá criar uma nova conexão com o banco de dados e assim quantas vezes for preciso. Se pensarmos em um sistema que recebe vários visitantes por minuto (ou segundo), mesmo uma tabela co

Grid customizado Web2py

Imagem
Boa tarde a todos este é meu primeiro post sobre web2py, há cerca de 8 meses estou produzindo de verdade com ele, realmente é um framework bem robusto e ágil (põe ágil nisso). O web2py tem alguns recursos e truques na manga que me deixaram fascinado e ao mesmo tempo bem bravo, um deles é o sistema de grids. Grids nos permitem criar todo um sistema de CRUD com apenas um comando SQLFORM.grid(tablename, **filters), isso daí cria toda aquela parafernália e nos poupa um trabalhão.  Principalmente quando não há necessidade de fazer algo lindo e belo aos olhos do usuário. Vamos lá. No seu controller adicione o seguinte codigo: E na sua view: Acabou! O resultado de tudo isso é:

Criando componentes customizados para WEB2PY

Criando componentes customizados para WEB2PY Bom amigos estou adotando o Web2py para desenvolver a maioria dos meus sistemas, o Web2py é um framework bastante ágil e full-stack, o que significa que não vou precisar de biblioteca de terceiros (pelo menos em sua maioria) para fazer o que preciso. A template engine do framework nos dá alguns Helpers para fazermos desde uma simples tag HTML até tabelas com consulta e paginação prontas com formulários embutidos. Show de bola. Porém a medida que a coisa vai crescendo se faz necessário criar seus próprios componentes, então temos duas opções, ou aproveitamos os recursos do Web2py ou fazemos tudo na unha. Fazer tudo na unha é uma boa opção se quisermos usar o que fizemos com outros frameworks, se tivermos tempo e paciência isto não é tão mal. Mas.... Se utilizarmos os recursos do Web2py podemos simplesmente copiar a biblioteca de Helpers do Web2py para onde queremos e fazer o que bem entendermos, já que eles foram projetados para serem re

Inauguração

A ideia deste blog é ser mais um meio de documentar técnicas e tutoriais não descritos nas documentações oficiais. Sabemos que o web2py é um framework simples e fácil de programar, porém, para alguns novatos e até mesmo usuários experientes algumas coisas não estão claras como em toda ferramenta. Esperamos que os artigos escritos aqui sirvam a comunidade web2py e a todos os desenvolvedores python.