2013-02-15 18 views
6

저는 거의 일년 동안 같은 문제를 겪었습니다. 나는 항상 그 문제를 해결할 수있는 방법을 찾지 만, 나는 주변을 발견하는 것에 지쳐있다.웹에서 Python 스크립트를 실행하십시오.

필요한 것은 서버에서 파이썬 스크립트를 실행하는 웹 페이지 (PHP 또는 ASP가 아닌 HTML)에 단추를 만드는 것입니다. 또한이 버튼을 사용하여 양식에서 스크립트로 정보를 보낼 수도 있습니다.

로컬 호스트와 Amazon Cloud에서 호스팅되는 웹 서비스를 통해이 작업을 수행해야합니다. PHP 또는 CGI와 같이 Amazon Cloud 서비스에 추가로 설치할 수 없습니다.

나는 정말 쉬운 솔루션을 원합니다. 저는 파이썬 전문가이며 호루라기가있는 웹 페이지를 작성할 수 있지만이 문제에 대한 간단한 해결책을 찾을 수 없습니다.

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

지금 내가보기 엔 그 같은 솔루션이 존재 의심하지만, 잘 난 지금 꿈을 꿀 수 :

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

제외 :

나의 이상적인 솔루션은 메일과 같은 태그를하는 것입니다.

내가 실행하려고 스크립트 :

  1. 는 사용자
  2. 에서 고유 ID를 반환이 ID를 기반으로 맵을 작성하는 GIS 프로그램의 ID를 전송합니다 (ID는의 영역을 선택 지도)
  3. 그런 다음지도를 PNG로 내 보낸 다음 HTML 문서에 쓴 다음 새 탭에 사용자에게 표시합니다. @Ketouem의 대답

편집 ---------------------------

덕분에 나는 훌륭한을 발견 할 수 있었다 솔루션을 내 문제. 나는 다른 사람들이 유익 할 수 있도록 여기에 코드를 게시 할 것이다. 파이썬 용 병 모듈을 다운로드하십시오.

# 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

입니까? –

+0

누구나 찾을 수 있다면 문제에 대한 또 다른 문제가 있습니다. [여기] (http://stackoverflow.com/questions/15010556/python-bottle-issues-when-accessed-externally) –

답변

5

당신은 병 사용할 수 있습니다 당신은 web.py, 플라스크 또는 피라미드를 사용하여 데몬을 실행할 수 있습니다 http://bottlepy.org/docs/dev/index.html 라이트 웹 프레임 워크

+0

흠,이 꽤 흥미로운 해결책이지만, 나는 그것이 내 상황을 위해 잘 작동하는지 정말로 알기도 전에 실험해야 할 것이다. –

+0

환상적인 솔루션, 필자의 대답에 코드를 추가 하겠지만이 모듈 제안을 실제로 도왔습니다. –

+1

도움이 되니 기쁩니다 ^^ – Ketouem

관련 문제