Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

Flask/page web : Plus de python pour moins de javascript

+2 votes

Je cherche à optimiser monde code python côté serveur pour taper le moins possible de javascript côté client.

Actuellement la mode c'est de mettre un max de javascript au point qu'il a atterri coté serveur avec Node pour pas s'emmerder à coder avec deux langages.

Moi je part avec une logique inverse. J'ai compris que malgré les efforts des développeurs de Brython, il me faudrait quand même apprendre le javascript.
Souffrance, un peu atténuée par la découverte d'underscore.

Côté serveur , je termine mes fonctions de calcul avec:

return jsonify(item1=item1,item2=item2,item3=item3)

Côté client, je receptionne:

<script type="text/javascript"> 
$(document).ready(function() {
$('.marked').each(function(){
        var monID = '' + $(this).attr('id');
        $(this).click(function(){
            $.ajax(
             {
                type:'GET',
                url:$SCRIPT_ROOT + '/mon_calcul',
                dataType: "JSON",    
                data:{clikedname: $(this).attr('id')},                    
                success: function(data){                     

                  $('#recapitulatif').html(data);         

                  obj = JSON.parse(data);                 
                  $('#item1').html(obj.item1);                
                  $('#item2').html(obj.item2);
                  $('#item3').html(obj.item3);

...}}}}}}}}}}}

Le problème c'est que j'ai encore du mal jongler avec mes "objets" côté client. Il doit exister une astuce côté serveur pour envoyer les données avec une structure facile à manipuler ensuite, avec un minimum de ligne en javascript.
Comment faire si la liste d' item est très longue ?
Je n'ai pas reussi à changer la ligne avec return jsonify.
J'aimerai quelque chose du style:

mes_donnees = "item1=item1,item2=item2,item3=item3"
return jsonify(mes_donnees)
demandé 13-Aou-2015 par buffalo974 (2,538 points)

1 Réponse

+4 votes
 
Meilleure réponse

Utilise un dictionnaire :

data={}
data['item1'] = item1
data['item2'] = item2
return jsonify(data)
répondu 14-Aou-2015 par jc (2,674 points)
sélectionné 24-Aou-2015 par buffalo974

ça change quoi côté js ?

Absolument rien.

Après coté js, tu peux trés bien itérer accéder a tes éléments en faisant

  result.item1
  # ou
  result['item1']

-> tu peux itérer sur les clefs.

...