Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何通过Web服务器运行python脚本并将结果返回到javascript?_Php_Javascript_Python_Gearman - Fatal编程技术网

Php 如何通过Web服务器运行python脚本并将结果返回到javascript?

Php 如何通过Web服务器运行python脚本并将结果返回到javascript?,php,javascript,python,gearman,Php,Javascript,Python,Gearman,我想从一个网页中获取结果,从dom通过ajax以json的形式发送,然后将数据发送到python脚本,运行它,然后以json的形式返回新结果。有人告诉我,运行gearman的php脚本是一个不错的选择,但我仍然不确定它是如何工作的。将Python脚本放在CGI目录中,并使用脚本中的CGI和json模块从post/get参数读取AJAX。当然,您可以从PHP执行系统调用来运行Python脚本,但我想不出一个好的理由来运行它。下面是我使用twisted和jquery的示例 #!/usr/local/

我想从一个网页中获取结果,从dom通过ajax以json的形式发送,然后将数据发送到python脚本,运行它,然后以json的形式返回新结果。有人告诉我,运行gearman的php脚本是一个不错的选择,但我仍然不确定它是如何工作的。

将Python脚本放在CGI目录中,并使用脚本中的
CGI
json
模块从post/get参数读取AJAX。当然,您可以从PHP执行系统调用来运行Python脚本,但我想不出一个好的理由来运行它。

下面是我使用
twisted
jquery
的示例

#!/usr/local/bin/python
import json
import time

from twisted.internet import reactor
from twisted.web.server import Site
from twisted.web.resource import Resource


class DataPage(Resource):
        isLeaf = True

        def render_GET(self, request):

                htmlFile = open("template.html")
                html = open("template.html").read()
                htmlFile.close()

                return html

        def render_POST(self, request):
                print request.args
                data = request.args['data'][0]
                print data
                return json.dumps(data[::-1])

resource = DataPage()
factory = Site(resource)
reactor.listenTCP(38123, factory)
reactor.run()
还有html

<html>
<head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        function flipData(){

            $.post("http://localhost:38123/", { data: "makeitbackwards" },
            function(data){
                    alert(data);
            }, "json");
        }
    </script>
</head>
<body>
<a href="javascript:void(0)" onclick="flipData()">Get Time</a>
</body>
</html>

函数flipData(){
$.post(”http://localhost:38123/“,{data:“makeitbackwards”},
功能(数据){
警报(数据);
}“json”);
}

您可以使用PHP调用系统脚本和程序,它应该捕获从这些脚本返回的任何内容<代码>$return=system(/path/to/script.py)只要脚本可由您的Web服务器执行。制作python cgi并读取post/get参数。为什么使用PHP脚本看起来是个好主意?只需在服务器上运行python脚本即可。同意@Wooble:PHP脚本会给应用程序增加不必要的复杂性。让Python解析JSON数据,对其进行处理,并将结果作为JSON返回。然后,您只需要让web服务器运行Python。