API Json com datas python

17 views
Skip to first unread message

Attique Tecnologia

unread,
Sep 2, 2019, 3:01:11 PM9/2/19
to web2py-users-brazil
Olá meus amigos.
Eu tenho um problema com a codificação de data e hora json, charset e python.
Meu objetivo é usar linhas web2py (db (). Select ()) para simplificar meu trabalho, mas não encontro o melhor caminho.
Vejo.
json de importação
# Não suporta data e hora python.

de gluon.contrib.simplejson import JSONEncoder
#Não suporta data e hora python

de gluon.serializers import json
#Suportar o datetime do python, mas não suportar os conjuntos de caracteres utf-8 (~, ç, ^ ...)

Alguém tem uma solução?

NOTA: Eu procuro neste grupo, mas nada foi encontrado.

Carlos Costa

unread,
Sep 5, 2019, 9:21:51 AM9/5/19
to web2py-us...@googlegroups.com
Explica um pouco melhor pra gente qual o resultado você deseja e o que você está obtendo no momento.

--
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-br...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/web2py-users-brazil/e52e1ea7-0076-4e70-b5bf-ffe7d8d82491%40googlegroups.com.


--
At.

Carlos J. Costa
--------------------------------------------------------------
Cientista da Computação - Esp. Gestão em Telecom

Attique Tecnologia

unread,
Sep 6, 2019, 5:27:59 PM9/6/19
to web2py-users-brazil
<div class="row" id="list-iterator">
<div class="col-lg-3 col-md-3 col-sm-6 col-xs-12 iterator" target="list-iterator">
<div class="thumbnail">
<img title="l.prd_title" alt="l.prd_title" width="100%" height="290px">
<div class="item-caption">
<h4 class="h-40">{%l.prd_title%}</h4>
<p style="display: none;">l.prd_short_description</p>
</div>
<p class="caption text-right thumbnail">
<a hre="l.prd_slug" ><span class="glyphicon glyphicon-zoom-in"></span> Detalhes</a>
</p>
</div>
<p style="display: none;">l.prd_metakeys</p>
<p>{{from gluon.contrib.simplejson import JSONEncoder
from datetime import datetime
json = JSONEncoder()
}}
{{=json.encode(lista.as_list()) }}
</p>
</div>
</div>

<script type="text/javascript">

String.prototype.replaceAll = function(search, replacement) {
        var target = this;
        return target.replace(new RegExp(search, 'g'), replacement);
  };
 
  {{
  from gluon.serializers import json as sjson
  import json
  }}
  lista = {{#=json.dumps(lista.as_list(), ensure_ascii=False).encode('utf8') }};

document.addEventListener("DOMContentLoaded", function(){
model = document.getElementsByClassName("iterator")[0];//serão várias divs
for (l of lista){
div = model.cloneNode(true);
//será preciso fazer substiuições recursivas.
for (o in l){
start = div.outerHTML.indexOf("{%")+2; // primeiro indice
last = div.outerHTML.indexOf("%}"); //ultimo indice
variable = div.outerHTML.substring(start, last);
div.innerHTML = div.outerHTML.replaceAll(variable, eval(variable));
//remove the delimitters {%%}
div.innerHTML = div.outerHTML.replace('{%','').replace('%}','');
}
//remove the delimitters {%%}
div.innerHTML = div.outerHTML.replaceAll('{%','').replaceAll('%}','');
document.getElementById(model.getAttribute('target')).appendChild(div);
}
//removendo o medel
model.remove();

});
</script>

Minha view esta da forma acima (products.load).
Minha ideia é simplificar a listagem com javascript e ao invés de gerar com for do python no servidor, gerar no cliente, é apenas um teste para tentar aliviar recursos no servidor sem eu precisar usar um framework como angular ou afins.
Uma das formas que eu conheço é converter a consulta em json seguindo as recomendações do web2py, porém ou eu tenho problemas com datas ou problemas de unicode.
Os problemas de unicode não deixam eu fazer parser no javascript, pois estou usando um método simples de replace.
Eu sei, é uma baita gambiarra, mas vai que funciona.
Reply all
Reply to author
Forward
0 new messages