2013-02-15 8 views
6

Ich stolpere seit fast einem Jahr mit dem gleichen Problem. Ich finde immer einen Weg, um es zu umgehen, aber ich bin es leid, Arbeit zu finden.Führen Sie ein Python-Skript aus dem Web

Was ich brauche, ist eine Schaltfläche auf einer Webseite (bevorzugt HTML, nicht PHP oder ASP) zu erstellen, die einen Python-Skript auf dem Server ausgeführt wird. Ich würde auch gerne die Möglichkeit haben, diese Schaltfläche Informationen aus einem Formular an das Skript senden zu lassen.

Ich brauche dies auf einem lokalen Host zu tun und über einen Web-Service auf der Amazon Cloud gehostet. Ich kann keine zusätzlichen Dienste im Amazon Cloud-Dienst wie PHP oder CGI installieren.

Ich würde wirklich wie eine einfache Lösung, ich bin ein Experte mit Python und ich kann Webseiten schreiben, die pfeifen, aber ich kann einfach nicht eine einfache Lösung für dieses Problem finden.

Meine ideale Lösung wäre, so etwas wie die Mail zu markieren:

<a href="mailto:[email protected]?Subject=Hello%20again">Send Mail</a> 

Außer:

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

Jetzt hoch eine Lösung, die ich wie die Zweifel existiert, aber auch ich kann richtig träumen.

Das Skript, das ich zu laufen versuche:

  1. Gibt eine eindeutige ID vom Benutzer
  2. die ID mit einem GIS-Programm sendet, die eine Karte auf der ID-basierten erzeugt (die ID wählt den Bereich der die Karte)
  3. Die Karte wird dann in ein PNG exportiert, in ein HTML-Dokument geschrieben und dann für den Benutzer in einem neuen Tab angezeigt.

EDIT ---------------------------

Dank @Ketouem Antwort konnte ich eine große finden Lösung für mein Problem. Ich werde hier einen Teil des Codes veröffentlichen, damit andere davon profitieren können. Stellen Sie sicher, dass Sie das Flaschenmodul für Python herunterladen, es ist großartig.

# 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) 
+1

können Sie einen Daemon mit web.py, Kolben oder Pyramide laufen? –

+0

Ich habe ein anderes Problem auf dem Problem hat, wenn jemand helfen kann es befindet sich [hier] (http://stackoverflow.com/questions/15010556/python-bottle-issues-when-accessed-externally) –

Antwort

5

Sie Bottle verwenden: http://bottlepy.org/docs/dev/index.html das ist ein leichter Web-Framework

+0

Hmm, das ist eine ziemlich interessante Lösung, ich werde mit ihr experimentieren müssen, bevor ich wirklich weiß, ob es für meine Situation funktioniert. –

+0

Fantastische Lösung, ich werde meinen Code zu meiner Antwort hinzufügen, aber Sie haben wirklich mit diesem Modulvorschlag geholfen. –

+1

Froh, dass es geholfen hat ^^ – Ketouem

Verwandte Themen