2013-02-15 2 views
6

Я уже спотыкаюсь с той же проблемой уже почти год. Я всегда нахожу способ обойти это, но я устал искать работу вокруг.Запустите скрипт Python из Интернета

Мне нужно создать кнопку на веб-странице (предпочтительный HTML, а не PHP или ASP), который запускает скрипт python на сервере. Мне также хотелось бы, чтобы эта кнопка передавала информацию из формы в скрипт.

Мне нужно сделать это на локальном хосте и через веб-службу, размещенную на облаке Amazon. Я не смогу установить что-либо еще на службе Amazon Cloud, например, PHP или CGI.

Мне очень хотелось бы легкого решения, я эксперт с python, и я могу писать веб-страницы, которые свистят, но я просто не могу найти простое решение этой проблемы.

Мой идеальным решением было бы что-то вроде почты помечать:

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

За исключением:

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

Теперь я очень сомневаюсь, что решение, как существующее, но хорошо я могу мечтать правильно.

Сценарий Я пытаюсь запустить:

  1. Возвращает уникальный идентификатор от пользователя
  2. Посылает идентификатор ГИС программу, которая создает карту на основе ID (идентификатор выбирает область карта)
  3. Карта затем экспортируется в PNG, записывается в HTML-документ и затем отображается для пользователя на новой вкладке.

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

Благодаря @Ketouem ответ, который я смог найти отличный решение моей проблемы. Я напишу часть кода здесь, чтобы другие могли воспользоваться. Убедитесь, что вы загрузите модуль бутылок для python, это замечательно.

# 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

вы можете запустить демон с помощью web.py, флягу или пирамида? –

+0

У меня была другая проблема, если кто-то может помочь, она находится здесь [http://stackoverflow.com/questions/15010556/python-bottle-issues-when-accessed-externally) –

ответ

5

Вы можете использовать бутылки: http://bottlepy.org/docs/dev/index.html которая является свет фреймворк

+0

Хмм, это это довольно интересное решение, мне придется экспериментировать с ним, прежде чем я действительно знаю, будет ли это работать для моей ситуации. –

+0

Фантастическое решение. Я добавлю свой код к моему ответу, но вы действительно помогли с этим предложением модуля. –

+1

Рад, что это помогло ^^ – Ketouem

Смежные вопросы