运行带有网站输入的python脚本

时间:2017-04-01 18:24:11

标签: javascript jquery python html ajax

我有一点webdev经验,刚开始学习python。我创建了一个python脚本,它接受一个参数,然后运行一个程序,并将print语句打印到控制台。我很好奇是否可以把这个程序放在网页上。

即。带有下拉列表的网页,选择该选项并单击" Go"按钮。然后使用您选择的选项运行python脚本,并在页面上显示您的报告。

我查看过几篇类似的帖子:Execute a python script on button click

run python script with html button

但他们似乎提供了截然不同的解决方案,人们似乎认为PhP的想法是不安全的。我也在寻找更明确的东西。我可以更改python脚本以返回ajson或其他内容而不仅仅是print语句。

1 个答案:

答案 0 :(得分:1)

在网页和python程序之间进行通信的一种非常常见的方法是将python作为WSGI server运行。实际上,python程序是一个单独的服务器,它使用GET和POST与网页通信。

这种方法的一个好处是它将Python应用程序与网页正确分离。您可以在开发过程中通过将http请求直接发送到测试服务器来测试它。

Python包含built-in WSGI implementation,因此创建WSGI服务器非常简单。这是一个非常小的例子:

from wsgiref.simple_server import make_server

# this will return a text response
def hello_world_app(environ, start_response):
    status = '200 OK'  # HTTP Status
    headers = [('Content-type', 'text/plain')]  # HTTP Headers
    start_response(status, headers)
    return ["Hello World"]

# first argument passed to the function
# is a dictionary containing CGI-style environment variables 
# second argument is a function to call
# make a server and turn it on port 8000
httpd = make_server('', 8000, hello_world_app)
httpd.serve_forever()