使用Javascript执行带参数的Python脚本的网页
Webpage with Javascript executing Python script with arguments
在同一个目录中有三个文件。一个是python脚本,它接受参数。一个是带有javascript的html页面。最后一个是源。wav文件。
./myfolder/sound_manipulation.py
./myfolder/volume_slider.html
./myfolder/the_song.wav
sound_manipulation.py文件可以这样执行:
python sound_manipulation.py -v 50
,它生成一个新的wav文件,new_song.wav,基于the_song.wav,但只有原始音量水平的50%。
另一方面,volume_slider.html包含一个从0到100%的滑动条,以及一个调用onclick javascript函数update_vol();
到目前为止,update_vol()提醒滑动条的值,这就是全部。
function update_vol() {
var vol = document.getElementById('vol_slider').value;
alert(vol);
}
但我希望update_vol()实际执行python脚本使用vol.
我怎样才能做到呢?
另外,当执行"python sound_manipulation.py -v 50"时,我如何将new_song.wav的位置返回到volume_slider.html?
请帮助。谢谢!
最简单和最粗糙的一次性cgi脚本可能解决您的问题。
设置一个cgi脚本/环境,从用户/获取volume
值,然后使用subprocess
模块处理。wav文件并将其发送回用户。如果你需要更多的东西,构建你自己的web应用程序。
import cgi
import subprocess
import sys
form = cgi.FieldStorage()
volume = form.getfirst('volume') #read from form 'volume'
subprocess.call(['python', 'sound_manipulation.py', '-v', volume])
with open('new_song.wav', 'rb') as wav_file:
print("Content-Type: audio/wav'n")
sys.stdout.write(wav_file.read())
嗯,我猜你运气不好。浏览器脚本不能在您的系统上执行任何操作(因此没有Python脚本)。我相信你可以想象,这可能会带来巨大的安全风险——这正是微软的ActiveX陷入的麻烦。
我假设您想为该脚本创建一个图形界面,所以您可以选择:
- 如果你绝对需要HTML,就用JavaScript编写Python脚本
- 或者在QT、GTK或类似的语言中创建一个接口。顺便说一下,Python可以很容易地做到这一点!
相关文章:
- 如何使用Python登录网页
- 在HTML网页中运行python方法
- 用javascript调用python函数,并在网页上显示返回的字符串
- Python爬网Pastebin(JavaScript渲染的网页)
- Python/R中的网页抓取javascript
- 使用Python使用Javascript进行网页抓取
- Python 网页抓取 JavaScript 生成的内容
- 使用没有URL的python脚本从网页下载文件,调用onClick函数
- Python Selenium,抓取网页JavaScript表
- 如何在特定时间段内使用 Python 跟踪网页中的特定内容
- 有没有办法在网页中集成用 Python 编写的处理草图
- 如何在python中将网页表数据转换为json对象或字典
- 如何在python中使用真正的jquery从网页中提取数据
- 在 Python 网页抓取期间触发 JS 事件
- Python AJAX无法运行PHP网页
- 使用python解析网页上的HTML和脚本
- 如何使用python在网页上提取动态时间计数器
- 在python下使用javascript实现网页浏览的自动化
- 如何使用Python与javascript网页交互
- 使用Python从网页中抓取Javascript文本