近一年来,我一直在为同样的问题而跌跌撞撞。我总能找到解决方法,但我厌倦了寻找解决方法。
我需要在网页(最好是 HTML,而不是 PHP 或 ASP)上创建一个按钮,该按钮在服务器上运行 python 脚本。我还希望能够让此按钮将信息从表单发送到脚本。
我需要在本地主机上通过托管在亚马逊云上的 Web 服务执行此操作。我将无法在亚马逊云服务上安装任何额外的东西,例如 PHP 或 CGI。
我真的很想要一个简单的解决方案,我是 python 专家,我可以编写吹口哨的网页,但我就是找不到解决这个问题的简单方法。
我理想的解决方案是将邮件标记为:
<a href="mailto:someone@example.com?Subject=Hello%20again">Send Mail</a>
除了:
<a href="myscript.py?Subject=1234">Run Script</a>
现在我非常怀疑是否存在这样的解决方案,但我可以梦想成真。
我正在尝试运行的脚本:
- 返回用户的唯一 ID
- 将 ID 发送到 GIS 程序,该程序根据 ID 创建 map (ID 选择 map 的区域)
- 然后将 map 导出为 PNG,写入 HTML 文档,然后在新选项卡中显示给用户。
编辑----------------------------
感谢@Ketouem 的回答,我找到了解决问题的好方法。我将在这里发布一些代码,以便其他人可以受益。请务必下载适用于 Python 的 Bottle 模块,它很棒。
# 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)
最佳答案
您可以使用 Bottle :http://bottlepy.org/docs/dev/index.html这是一个轻量级的网络框架
关于python - 从 Web 运行 Python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14898890/