Использование javascript с python

#javascript

#javascript

Вопрос:

Я хочу создать очень упрощенный графический интерфейс, который позволит пользователю вводить несколько битов информации в форму, а затем я обработаю данные и выложу карту Google на веб-страницу, с которой пользователь взаимодействует.

Однако это будет просто запускаться на локальном компьютере вместо того, чтобы быть веб-страницей, которая предоставляется пользователю. Я хотел бы выполнить «сжатие данных» на python, поэтому я хотел бы, чтобы javascript мог передавать данные формы в функцию python, а затем выполнять некоторые действия, а затем выводить обратно на веб-страницу.

Есть ли хороший способ сделать это? Есть предложения? Я просто хочу иметь веб-форму в качестве интерфейса, потому что это кажется самым простым, но я открыт для предложений.

Ответ №1:

Пожалуйста, обратите внимание http://shootout.alioth.debian.org/u32/benchmark.php?test=allamp;lang=v8amp;lang2=python . Python работает медленнее, чем javascript; большинство движков javascript работают очень быстро.

Комментарии:

1. Под большинством вы подразумеваете только IE9 / FF4 / Chrome10 / Saf5 / Opera11

2. @Raynos: Это браузеры, а не движки JavaScript. 😉

3. @Shaz и если бы я сказал Chakra / JaegerMonkey / Crankshaft / Nitro / Carakan, большинство людей были бы потеряны.

4. @Raynos: Каркан! Этот егерь азотировал мой коленчатый вал, используя свою собственную чакру!

Ответ №2:

Если вы хотите использовать python на локальном компьютере, вы будете зависеть от клиента, имеющего его, и не только это, вам придется проверить их текущую версию и поработать дважды, чтобы заставить ее работать как для 2.X, так и для 3.X .

Я бы сделал так, как сказал mozillanerd, и работал только с javascript.

Если вы любите python, я не вижу лучшего способа сделать это, чем использовать python на вашем сервере, используя что-то вроде python-shell (для node.js ):

 var PythonShell = require('python-shell');

var options = {
  args: [latitude, longitude]
};

PythonShell.run('my_script.py', options, function (err, results) {
  if (err) throw err;
  console.log('results: %j', results);
});