FIltrar Grade e mostrar resultado

34 views
Skip to first unread message

felipe...@tksolucoes.com.br

unread,
Apr 3, 2017, 3:55:54 PM4/3/17
to web2py-users-brazil
E ai pessoal sou novo aqui e também na linguagem,

Estou meio sem rumo com uma questão, criei uma grade onde vou filtar ela por data inicio, data fim, status, localidades, entre outros...

Não estou utilizando a grid que o web2py fornece, resolvi criar uma própria utilizando a bibliioteca jquery datables().

Mais ai que me vem a seguinte duvida:

Como Filtrar a tabela enviar para controller e ela me retornar a mesma grid com formulario montado.

Em PHP eu faria por AJAX, seria manhã demais!

Porém por conhecer a linguagem python e o framework por pouco tempo estou meio sem rumo.

Desde já agradeço!




Carlos Costa

unread,
Apr 3, 2017, 6:13:30 PM4/3/17
to web2py-us...@googlegroups.com
Usando ajax também.
Cire uma action que retorne os campos que você precisa na tabela e chame a url com .json como extensão.

no controler seria algo assim:

def dados():
    dados = db(db.tabela1....).select(db.tabela1.campo1, db.tabela1.campo2)
    return dict(dados=dados)

e chamaria url 
/app/default/dados.json

Dependendo da estrutura da sua tabela e forma da consulta você vai ter que fazer ajustes, obviamente.
Mas basicamente é isso.

--
Você recebeu essa mensagem por estar inscrito no grupo web2py-users-brazil.
Para enviar uma mensagem ao grupo, envie email a: web2py-users-brazil@googlegroups.com
Para se desinscrever, envie email a: web2py-users-brazil+unsub...@googlegroups.com
Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você recebeu essa mensagem porque está inscrito no grupo "web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-brazil+unsub...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--


Carlos J. Costa
Cientista da Computação  | BS Computer Science
Esp. Gestão em Telecom   |
PgC Telecom Mangement
<º))><

Felipe Marcos

unread,
Apr 4, 2017, 7:47:18 AM4/4/17
to web2py-us...@googlegroups.com
Primeiramente obrigado pela resposta, estou gostando da comunidade do python.

Então a logica seria mais ou menos assim:

1. Tenho um formulario em cima da grid
2. Terei um ajax (get) que vai ser ativado pelo botão submit
3. Pegar os parametros jogar dentro action
3. Gerar uma nova tabela com os dados filtrados

O ajax no web2py eu conseguiria colocar uma GIF enquanto carrega ?

Geralmente utilizo em outras linguagem -> beforesend do ajax para criar uma gif.



Em 3 de abril de 2017 19:13, Carlos Costa <yamand...@gmail.com> escreveu:
Usando ajax também.
Cire uma action que retorne os campos que você precisa na tabela e chame a url com .json como extensão.

no controler seria algo assim:

def dados():
    dados = db(db.tabela1....).select(db.tabela1.campo1, db.tabela1.campo2)
    return dict(dados=dados)

e chamaria url 
/app/default/dados.json

Dependendo da estrutura da sua tabela e forma da consulta você vai ter que fazer ajustes, obviamente.
Mas basicamente é isso.
Em 3 de abril de 2017 16:55, <felipe...@tksolucoes.com.br> escreveu:
E ai pessoal sou novo aqui e também na linguagem,

Estou meio sem rumo com uma questão, criei uma grade onde vou filtar ela por data inicio, data fim, status, localidades, entre outros...

Não estou utilizando a grid que o web2py fornece, resolvi criar uma própria utilizando a bibliioteca jquery datables().

Mais ai que me vem a seguinte duvida:

Como Filtrar a tabela enviar para controller e ela me retornar a mesma grid com formulario montado.

Em PHP eu faria por AJAX, seria manhã demais!

Porém por conhecer a linguagem python e o framework por pouco tempo estou meio sem rumo.

Desde já agradeço!




--
Você recebeu essa mensagem por estar inscrito no grupo web2py-users-brazil.
Para enviar uma mensagem ao grupo, envie email a: web2py-users-brazil@googlegroups.com
Para se desinscrever, envie email a: web2py-users-brazil+unsubscribe...@googlegroups.com

Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você recebeu essa mensagem porque está inscrito no grupo "web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-brazil+unsubscribe...@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.



--


Carlos J. Costa
Cientista da Computação  | BS Computer Science
Esp. Gestão em Telecom   |
PgC Telecom Mangement
<º))><

--
Você recebeu essa mensagem por estar inscrito no grupo web2py-users-brazil.
Para enviar uma mensagem ao grupo, envie email a: web2py-users-brazil@googlegroups.com
Para se desinscrever, envie email a: web2py-users-brazil+unsub...@googlegroups.com
Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você recebeu essa mensagem porque está inscrito em um tópico no grupo "web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse tópico, acesse https://groups.google.com/d/topic/web2py-users-brazil/VPWIF8SHxMY/unsubscribe.
Para cancelar inscrição nesse grupo e todos os seus tópicos, envie um e-mail para web2py-users-brazil+unsub...@googlegroups.com.

Carlos Costa

unread,
Apr 4, 2017, 8:20:26 AM4/4/17
to web2py-us...@googlegroups.com
Dessa forma você vai gastar muito mais javascript do que Web2py.
O web2py vai ficar responsável apenas por pegar os dados e retornar o json.
Não há problema, é apenas uma das formas de se fazer isso.

Outra forma seria a sua action retornar o grid inteiro, mas somente o grid, e não a página inteira.
Para isso você usa a função LOAD com ajax=True

O tratamento do gif você pode fazer com os eventos ajax sim. Web2py já vem o jQuery para facilitar isso.
$( document ).ajaxStart(function() {
  $("#loading").addClass('show');
});
$( document ).ajaxStop(function() {
  $("#loading").removeClass('show');
});
$( document ).ajaxError(function() { 
  alert("Ocorreu um erro!");
}



Você recebeu essa mensagem porque está inscrito em um tópico no grupo "web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse tópico, acesse https://groups.google.com/d/topic/web2py-users-brazil/VPWIF8SHxMY/unsubscribe.
Para cancelar inscrição nesse grupo e todos os seus tópicos, envie um e-mail para web2py-users-brazil+unsubscribe...@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.

--
Você recebeu essa mensagem por estar inscrito no grupo web2py-users-brazil.
Para enviar uma mensagem ao grupo, envie email a: web2py-users-brazil@googlegroups.com
Para se desinscrever, envie email a: web2py-users-brazil+unsub...@googlegroups.com
Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você recebeu essa mensagem porque está inscrito no grupo "web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-brazil+unsub...@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.

Felipe Marcos

unread,
Apr 5, 2017, 8:36:22 AM4/5/17
to web2py-us...@googlegroups.com
Fiz da seguinte forma enviei um $.GET com os filtros para uma ACTION e trabalhei o retorno dela em JSON montando assim a GRID

e loading eu dou um add show e remove show ao obter sucesso.

Obrigadão!


Para cancelar inscrição nesse grupo e todos os seus tópicos, envie um e-mail para web2py-users-brazil+unsub...@googlegroups.com.

Carlos Costa

unread,
Apr 5, 2017, 10:17:29 AM4/5/17
to web2py-us...@googlegroups.com
É isso aí. flw.

Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-brazil+unsub...@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.

Felipe Marcos

unread,
Apr 5, 2017, 12:06:41 PM4/5/17
to web2py-us...@googlegroups.com
Não querendo aproveitar da sua boa vontade comigo!
Estou com mais uma duvida, que pode parecer boba, porém inclui um pouco o conceito da biblioteca.

Tenho um banco de dados já pronto com dados de CDR ASTERISK!
Preciso criar uma model para espelhar esse banco ja criado ? Ao me conectar nele o web2py vai criar as tabelas que ele faz controle, ele vai conseguir pegas os dados restantes, que não estão inclusos na model.

É isso aí. flw.
Para cancelar inscrição nesse grupo e todos os seus tópicos, envie um e-mail para web2py-users-brazil+unsub...@googlegroups.com.

Carlos Costa

unread,
Apr 5, 2017, 4:48:39 PM4/5/17
to web2py-us...@googlegroups.com
Para usar a DAL não. Ela depende dos models.
Mesmo assim você pode acessar sem os models, usando sql bruta, 

Você também pode criar mais conexções, mais instâncias da DAL, cada uma em um banco.
Usar uma para controle do web2py e tudo mais.
E a outra apra consultar os seus dados. Se você não passar ela como parâmetro para o auth.define_tables(), as tabelas do web2py não serão criadas nela.
É esse método que as cria.
Outro ponto importante é desativar as migrations, para que o web2py não tente modificar a estrutura do seu banco.
Veja mais sobre como tratar bancos legados aqui:

Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-brazil+unsub...@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.

Felipe Marcos

unread,
Apr 6, 2017, 10:21:05 AM4/6/17
to web2py-us...@googlegroups.com
Mais uma vez obrigado! consegui pegar os dados que queria usando esse codigo  

query = "SELECT * FROM cdr"
rows = db.executesql(query)

Como havia dito sou novo no python porém a logica é a mesma, o negocio é pegar conceito, e algumas sintaxes diferentes.

Obrigadão!

Para cancelar inscrição nesse grupo e todos os seus tópicos, envie um e-mail para web2py-users-brazil+unsub...@googlegroups.com.

Carlos Costa

unread,
Apr 6, 2017, 11:44:46 AM4/6/17
to web2py-us...@googlegroups.com
Eu não gosto desse método e não recomendo.
Usar strings para fazer consultas torna o código muito mais difícil de escrever,ler e manter.
Só uso em últmo caso e em poucos pontos.

Na pasta scripts do web2py você também vai encontrar scripts que fazem engenharia reversa de bancos legados.
Ou seja, ele vai ler o banco e criar um arquivo com os models pra vc. Aí é só colocar na sua pasta models e sair usando.

Quer dizer, são só umas dicas.



Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-brazil+unsub...@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.

Felipe Marcos

unread,
Apr 6, 2017, 11:55:40 AM4/6/17
to web2py-us...@googlegroups.com
Essas dicas que me ajudam, porque quando você chega em um nova linguagem você aprende inumeras formas de se fazer algo, porém existe sempre a mais correta, que não vai consumir muito processamento, que será de melhor manutenção, então é isso que eu quero aprender.

Vou ver esse script achei bem interessante, geralmente no sistema que estou desenvolvendo vou precisar disso, pegar dados de outros bancos, porém inserindo as tabelas que o web2py cria para controle de usuário ou seja um pouco de cada.



Para cancelar inscrição nesse grupo e todos os seus tópicos, envie um e-mail para web2py-users-brazil+unsub...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages