我有一个问题已经在这里和互联网上的其他地方被问过多次*,但我看到的答案不完整或无效。
我想要一个 JavaScript 函数runPy(),在被调用时(在浏览器中,例如通过单击按钮),将在我的服务器中执行一个 Python 脚本,我们将其称为test.py.
假设 test.py 只是设计用于创建一个文本文件并在其中写入“hello world”
Python
f = open('test.txt', 'w+')
f.write('hello world')
Run Code Online (Sandbox Code Playgroud)
根据其他答案,我拼凑了以下 JavaScript/jQuery 函数:
JavaScript
function runPy() {
$.ajax({
type:'POST',
url:'test.py',
success: function(data) {
console.log(data)
};
});
}
Run Code Online (Sandbox Code Playgroud)
现在看来,这当然是不正确的。正如人们所预料的那样,它不是运行 Python 脚本,而是将脚本的内容打印到控制台:
安慰
f = open('test.txt', 'w+')
f.write('hello world')
Run Code Online (Sandbox Code Playgroud)
我将如何编辑 JavaScript(和/或 Python)来实现我想要的功能?在完美的世界中,我想避免导入任何新的依赖项(我已经看到了一些依赖于 Flask 或 Django 的答案),但乞丐当然不能成为选择者。
另外,如果我允许自己变得贪婪,那么能够将参数传递给 Python 脚本,甚至使用 JavaScript 调用 Python 脚本中的特定函数,并将结果传回给 Python 脚本,那就太好了客户端 JavaScript。
*类似问题
从 JS 调用 python 函数
如何从 javascript 调用 python 脚本?
从 JavaScript 函数运行 …
我正在寻找一个标准的Python 2.7软件包,它提供了一个HTTP服务器,可以在同一个端口号上同时进行流连接.
嘿你们那里的主持人,请停止将我的问题标记为想要以非流方式提供的问题的副本,例如: python中的多线程Web服务器.不,我不想要一个ThreadingMixIn只是收集响应并将其作为一个单元返回的黑客.
换句话说,我正在寻找标准方法来执行以下示例程序所做的事情 - 但是没有自己编写整个HTTP服务器.
import time, socket, threading
sock = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
host = socket.gethostname()
port = 8000
sock.bind((host, port))
sock.listen(1)
# my OWN HTTP server... Oh man, this is bad style.
HTTP = "HTTP/1.1 200 OK\nContent-Type: text/html; charset=UTF-8\n\n"
class Listener(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.daemon = True # stop Python from biting ctrl-C
self.start()
def run(self):
conn, addr = sock.accept()
conn.send(HTTP)
# serve up an infinite stream
i = 0
while …Run Code Online (Sandbox Code Playgroud)