【问题标题】:Run a Python Script from the Web从 Web 运行 Python 脚本
【发布时间】:2013-02-15 16:22:30
【问题描述】:

近一年来,我一直在遇到同样的问题。我总是想办法解决它,但我厌倦了寻找解决方法。

我需要在服务器上运行 python 脚本的网页(最好是 HTML,而不是 PHP 或 ASP)上创建一个按钮。我还希望能够让此按钮将信息从表单发送到脚本。

我需要在本地主机上并通过托管在 Amazon Cloud 上的 Web 服务来执行此操作。我将无法在 Amazon Cloud 服务上安装任何额外的东西,例如 PHP 或 CGI。

我真的很想要一个简单的解决方案,我是 python 专家,我可以编写会吹口哨的网页,但我就是找不到解决这个问题的简单解决方案。

我理想的解决方案是要标记的邮件:

<a href="mailto:someone@example.com?Subject=Hello%20again">Send Mail</a>

除了:

<a href="myscript.py?Subject=1234">Run Script</a>

现在我非常怀疑是否存在这样的解决方案,但我可以梦想成真。

我正在尝试运行的脚本:

  1. 返回用户的唯一 ID
  2. 将 ID 发送到基于 ID 创建地图的 GIS 程序(ID 选择地图的区域)
  3. 然后将地图导出为 PNG,写入 HTML 文档,然后在新选项卡中显示给用户。

编辑---------------

感谢@Ketouem 的回答,我能够找到解决问题的好方法。我将在这里发布一些代码,以便其他人可以受益。确保你下载了 Python 的 Bottle Module,它很棒。

# 01 - Import System Modules
from bottle import get, post, request, Bottle, run, template

# 02 - Script Variables
app = Bottle()

# 03 - Build Temporary Webpage
@app.route('/SLR')
def login_form():
    return '''<form method="POST" action="/SLR">
                Parcel Fabric ID: <input name="UID" type="text" /><br />
                Save Location: <input name="SaveLocation" type="text" value="D:/Python27/BottleTest/SLR_TestOutputs"/><br />
                Air Photo On: <input name="AirPhoto" type="checkbox"/><br />                
                Open on Completion: <input name="Open" type="checkbox"/><br />
                Scale: <input name="Scale" type="text" value="10000"/><br />
                <input type="submit" />
              </form>'''

# 04 - Return to GIS App
@app.route('/SLR', method='POST')
def PHPH_SLR_Script():
    # I won't bother adding the GIS Section of the code, but at this point it send the variables to a program that makes a map. This map then saves as an XML and opens up in a new tab.

 # 04 - Create and Run Page
run(app, host='localhost', port=8080)

【问题讨论】:

  • 你可以使用 web.py、flask 或 pyramid 运行守护进程吗?
  • 我遇到了另一个问题,如果有人可以帮助它位于here

标签: python web-services web-applications web python-2.7


【解决方案1】:

你可以使用 Bottle : http://bottlepy.org/docs/dev/index.html 这是一个轻量级的网络框架

【讨论】:

  • 嗯,这是一个非常有趣的解决方案,不过我必须先尝试一下,然后才能真正知道它是否适合我的情况。
  • 很棒的解决方案,我会将我的代码添加到我的答案中,但您确实帮助了这个模块建议。
  • @CodyBrown 你的解决方案?
猜你喜欢
  • 2023-01-30
  • 1970-01-01
  • 1970-01-01
  • 2023-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多