Ajuda com LOAD/Ajax

14 views
Skip to first unread message

Gualter Portella

unread,
May 14, 2018, 8:14:26 AM5/14/18
to web2py-users-brazil
Prezados(as), bom dia!

Estou com muita dificuldade em inserir um componente numa página via LOAD. A minha intenção é renderizar gráficos na página visao.html por meio do LOAD.

A outra opção é usar ajax, que é mais claro para mim, mas preciso saber como enviar objetos json e web2py a partir da mesma função do controller.

Por exemplo, a função no controller é:

from random import sample
from gluon.serializers import json


def index():
    return locals()


def data():
    dataset = {}
    dataset['results'] = sample(range(1, 10), 5)
    dataset['labels'] = ['week 1', 'week 2', 'week 3', 'week 3', 'week 4', 'week 5']
    dataset['mensagem'] = ["Um alô para você"]
    return dict(dataset=json(dataset))

Nesse formato, em que eu posso incluir mais variáveis no dict, o jQuery não pega a variável json:

var getData = jQuery.getJSON('/chartist/default/data')

Para o código funcionar, tenho que utilizar o seguinte formato no controller:

def data():
    dataset = {}
    dataset['results'] = sample(range(1, 10), 5)
    dataset['labels'] = ['week 1', 'week 2', 'week 3', 'week 3', 'week 4', 'week 5']
    dataset['mensagem'] = ["Um alô para você"]
    return response.json(dataset)

Entretanto, nesse formato, não sei como passar outra variável web2py na mesma função, o que é fundamental no meu projeto.

Algum sugestão ou saída para esse impasse?

Obrigado,

Gualter

Ari Sobel

unread,
May 14, 2018, 8:42:26 AM5/14/18
to web2py googlegroups
bom dia, Gualter,

Na minha visão, o que vc poderia fazer seria uma mistura das duas soluções. Pra vc retornar um json legível para o Jquery, vc precisa retornar um response com cabeçalho Json, que é o que acontece quando retorna 
return response.json("teu_dict")

Por isso, faça uma dict de dicts, e vc terá um Json aninhado:

def data():
    minha_segunda_variavel = 25
    minha_terceira_variavel = "algum texto"
    minha_quarta__variavel = {'alguma_chave':'algum_valor'}

    dataset = {}
    dataset['results'] = sample(range(1, 10), 5)
    dataset['labels'] = ['week 1', 'week 2', 'week 3', 'week 3', 'week 4', 'week 5']
    dataset['mensagem'] = ["Um alô para você"]
    return response.json(dataset=dataset,
              minha_segunda_variavel  = minha_segunda_variavel  ,  
              minha_terceira_variavel  = minha_terceira_variavel,
              minha_quarta__variavel  =  minha_quarta__variavel
  )




Abcs,
Ari
[   grupo no telegram:  https://t.me/web2pybrasil   ]


--
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.

Gualter Portella

unread,
May 14, 2018, 9:15:00 AM5/14/18
to web2py-us...@googlegroups.com
Obrigado, Ari.
Vou experimentar e te digo se funcionou depois.
Abraço,
Gualter 

Enviado do meu iPhone
Para enviar uma mensagem ao grupo, envie email a: web2py-us...@googlegroups.com
Para se desinscrever, envie email a: web2py-users-br...@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/NU43uLKAaoM/unsubscribe.
Para cancelar inscrição nesse grupo e todos os seus tópicos, envie um e-mail para web2py-users-br...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages