Python Tornado - Javasript

Sekcia: Programovanie 25.01.2016 | 18:35
Bibibo   Návštevník

Ahojte,

robim si jedno zariadenie, ktore budem moct ovladat cez internet. Ako web server (backend) pouzivam Python Tornado a Frontend Javascript. Komunikacie medzi Tornadom a Javascript je JSON. Ten JSON sa mi moc nepaci a chcel by som pouzit nieco ine. Poradite co by som mohol n miesto JSONu pouzit ?

    • RE: Python Tornado - Javasript 25.01.2016 | 18:54
      Avatar Miroslav Bendík Gentoo  Administrátor

      Čo je na JSONe zle?

      Celkom zaujímavá alternatíva je MessagePack.

    • RE: Python Tornado - Javasript 25.01.2016 | 18:59
      Avatar bedňa LegacyIce-antiX  Administrátor

      JSON je to najjednoduchšie ako si predávať dáta, máš názov => hodnota, potom ešte XML, to vyslovene nemá rád pretože to je anti human readable.

      V JavaScripte sú na prácu s JSON hotové príkazy:

      // Zavolaj python skript
      xhr.open ("POST", "python/list_files_on_server.py", false);
      xhr.send ();
      var json_data_files = (xhr.responseText);
      // Rozdeľ JSON do poľa
      var obj_files = JSON.parse (json_data_files);
      // Práca s poľom
      for (var index in obj_files) {
        // Každú premennú si spracuješ v tomto cykle
      }
      

      To už jednoduchšie nemôže byť :)

      Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
    • RE: Python Tornado - Javasript 25.01.2016 | 19:05
      Avatar Bibibo   Návštevník

      Nieje uplne zly. Mozno este celkom nechapem ako ho pouzivat alebo je dost zlozity na moje chapanie. Na strane Javascriptu nie je problem, ale mam problem na strane Pythonu. Ak mam nejaky string a chcem ho poslat do frontendu, tak to nemozem poslat ako bezny string a musim to este prehnat cez nejake funkcie aby si s tym Javascript poradil. O to zlozitejsie t je ak string spajam alebo to chcem poslat ako nejaky zoznam. Skratka tomu moc nerozumiem.

      • RE: Python Tornado - Javasript 25.01.2016 | 19:27
        Avatar Miroslav Bendík Gentoo  Administrátor

        JSON na strane pythonu je pomerne jednoduchý. Stačí použiť funkcie json.dumps pre konverziu z python typov do jsonu a json.loads pre prevod z jsonu do python typoov:

        import json
        
        pole = ['a', 'b', 'c']
        slovnik = {'sk': 'slovensky', 'cz': 'cesky'}
        
        print(json.dumps(pole))
        // ["a", "b", "c"]
        print(json.dumps(slovnik))
        //{"sk": "slovensky", "cz": "cesky"}
        
        print(json.loads('["a", "b", "c"]'))
        // [u'a', u'b', u'c']
        print(json.loads('{"sk": "slovensky", "cz": "cesky"}'))
        // {u'sk': u'slovensky', u'cz': u'cesky'}
        
        • RE: Python Tornado - Javasript 27.01.2016 | 08:49
          Avatar Bibibo   Návštevník

          Ahojte,

          ok, tak ostavam pri JSON. Chcel som skusit XML ale naozaj JSON je prehladnejsi. Dik.