如何从HTML转到python,返回到html,然后在处理脚本中更改变量?

时间:2017-05-23 23:05:38

标签: jquery python html ajax processing

我的项目:

我想创建一个简单的网页(仅在我的本地计算机上运行 - 不连接到互联网),当您按下客户端的按钮时,运行运行dejavu的python脚本,并返回这首歌的标题。然后我想使用歌曲标题来改变处理脚本中的变量,该脚本将根据歌曲显示不同的可视化。

到目前为止,我有一个工作的python脚本(testPython.py),它将识别一首歌曲,并将标题作为字符串返回:

from dejavu import Dejavu
from dejavu.recognize import MicrophoneRecognizer
main():
    config = {
        "database": {
            "host": "127.0.0.1",
            "user": "root",
            "passwd": "Password",
            "db": "dejavu",
        }
    }
    djv = Dejavu(config)
    song = djv.recognize(MicrophoneRecognizer, seconds=10)
    return song.get("song_name") #this is a string

我有html + AJAX脚本,可以调用python函数并根据它调整HTML元素,以及带有处理脚本的canvas元素

    $('button').click(function(){
      $.ajax({
         url: "testPython.py",
         success: function(response) {
             $("#test").css("color", "red");
         }
        });
    });

    .
    .
    .

    <canvas data-processing-sources="testProcessing.pde"></canvas>

我有一个处理脚本(基于变量的输出变化没有实现,但它不应该复杂)

    void setup(){
    ...
    }

    void draw(){
    ...
    }

如何将这些全部放在一起,因此python / dejavu的结果会影响处理脚本的输出?

(我也知道这很麻烦;除了python和html之外,我对这里的所有内容都很陌生,而且我高估了项目的复杂性)

1 个答案:

答案 0 :(得分:1)

请参阅the Processing.js JavaScript Quick Start Guide撰写处理和JavaScript代码的文档部分。

该指南精确解释了如何混合Processing.js和JavaScript。

具体来说,您有两个选择:让您的Processing.js代码调用JavaScript函数和变量,或让您的JavaScript代码调用处理函数。

最后它被转换为JavaScript,所以它们都是一样的。

另外,请养成将问题分解成小块的习惯。你说你已经让Python部分工作了,所以现在把它的其余部分隔离在一个更简单的例子中,该例子使用你希望在Processing中获得的JavaScript中的硬编码变量。尝试将一个小例子(最好是在JSFiddle或CodePen上)放在一起,如果你遇到问题就发布一个链接(在一个新问题中)。祝你好运。