Как я создаю веб-страницу с кнопками, которые вызывают различные сценарии Python на систему, служащую веб-странице?

Вот еще одно решение, если вы хотите использовать [CLLocationManager setAllowsBackgroundLocationUpdates:] в отдельном модуле проекта / статической библиотеке. Вы получите этот сбой, если приложение, использующее этот модуль / библиотеку, не имеет возможности фона местоположения ... Я сделал следующий метод для безопасного вызова:

- (void) setAllowsBackgroundLocationUpdatesSafely
{
    NSArray* backgroundModes  = [[NSBundle mainBundle].infoDictionary objectForKey:@"UIBackgroundModes"];

    if(backgroundModes && [backgroundModes containsObject:@"location"]) {
        if([mLocationManager respondsToSelector:@selector(setAllowsBackgroundLocationUpdates:)]) {
            // We now have iOS9 and the right capabilities to set this:
            [mLocationManager setAllowsBackgroundLocationUpdates:YES];
        }
    }
}
24
задан jfs 16 January 2009 в 00:07
поделиться

8 ответов

Эта страница на сайте Python имеет хорошее описание и пример того, что необходимо сделать для выполнения сценария CGI Python. Начните с самым простым случаем сначала. Просто сделайте короткий сценарий, который печатает HTML.

#!/usr/bin/python                   #on windows change to your path to the python exe

print "Content-Type: text/html"     # HTML is following
print                               # blank line, end of headers
print "<TITLE>CGI script output</TITLE>"
print "<H1>This is my first CGI script</H1>"
print "Hello, world!"

при попытке этого в первый раз самая твердая часть обычно выясняет, куда поместить сценарий и как заставить веб-сервер распознать и выполнить его. Если Вы используете апачскую сеть, разъединяют, смотрят на эти шаги .

конфигурации

, Как только у Вас есть эта простая работа сценария, необходимо будет просто добавить, что форма HTML и кнопка отмечают и используют свойство действия для указания на него на сценарии, которые Вы хотите выполнить.

5
ответ дан JaseAnderson 29 November 2019 в 00:27
поделиться

Все, в чем Вы нуждаетесь, должно иметь его в каталоге, который установлен выполнить сценарии CGI, тогда необходимо добавить

#!/usr/bin/env python

к вершине, и это должно выполнить сценарий как нормальный сценарий Python, если Вы связываетесь с ним. (как Вы был бы HTML или файл PHP)

, Это, конечно, предполагает, что Ваш веб-сервер настраивается для выполнения CGI вообще, и что у Вас есть система Linux.

существуют другие, альтернативные решения, если бы Вы хотите что-то немного более необычное, как mod_python и веб-платформы как Опоры, но я думаю, решение для CGI удовлетворило бы Вашему варианту использования лучше.

[РЕДАКТИРОВАНИЕ]

В Windows, если у Вас есть Apache, НЕОБХОДИМО быть в состоянии использовать тот же метод, но замену материала позади #! с путем к Вашему python.exe, как так:

#!C:\Python25\python.exe -u

-u, по-видимому, необходим для помещения Python в освободивший буфер режим согласно этой ссылке, которая также имеет больше всесторонней информации: http://www.imladris.com/Scripts/PythonForWindows.html

2
ответ дан Daniel Bruce 29 November 2019 в 00:27
поделиться

Вам следует рассмотреть CherryPy как ваш обработчик HTTP-запросов, который можно настроить для работы поверх очень легкого NGINX веб-сервера (или Apache, если вы предпочитаете).

Затем вы можете импортировать другие сценарии в службу, запущенную на CherryPy. Это даст вам немного больше контроля над процессом и обнаружением ошибок, если они возникают.

Другой вариант - просто указать операционной системе запустить команду с помощью os.system (). Посмотрите здесь пример различных подходов к использованию os.system ().

1
ответ дан Soviut 29 November 2019 в 00:27
поделиться

Этот простой подход не требует ничего, кроме стандартной библиотеки Python. Создайте эту структуру каталогов:

.
|-- cgi-bin
|   `-- script.py
|-- index.html
`-- server.py

Вы помещаете свои скрипты в каталог «cgi-bin», «index.html» содержит ссылки на скрипты в каталоге «cgi-bin» (так что вам не нужно введите их вручную, хотя это возможно), и «server.py» содержит следующее:

import CGIHTTPServer
CGIHTTPServer.test()

Чтобы запустить сервер, просто запустите «server.py». Вот и все, нет Apache, нет других зависимостей.

HTH ...

3
ответ дан Michael Janssen 29 November 2019 в 00:27
поделиться

Простой cgi сценарий (или набор сценариев) является всем, что необходимо начать. Другие ответы касались, как сделать это так, я не повторю его; вместо этого, я подчеркну, что простой текст использования получит Вас длинный путь . Просто произведите заголовок (print("Content-type: text/plain\n") плюс печать, добавляет его собственная новая строка, чтобы дать Вам необходимую пустую строку), и затем запустите свою нормальную программу.

Таким образом, любой нормальный вывод из Вашего сценария отправляется в браузер, и Вы не должны волноваться о HTML, выходе, платформах, чем-либо. "Сделайте самую простую вещь, которая могла возможно работать".

Это особенно подходит для неинтерактивных частных задач администрирования как Вы, описывают, и позволяет Вам использовать идентичные программы от оболочки с минимумом суеты. Ваш драйвер, страница с кнопками, может быть статическим файлом HTML с формами единственной кнопки. Или даже список ссылок.

Для усовершенствования оттуда посмотрите на регистрирующийся модуль (например, отправив ИНФОРМАЦИОННЫЕ сообщения в браузер, но не командную строку, или легко категоризировав сообщения при помощи различных регистраторов, путем конфигурирования обработчиков), и затем начните рассматривать движки шаблонов и платформы.

не Делают , производит Ваш собственный HTML и пропуск к использованию одного из многих существующих libraries— это сохранит тонну головной боли, даже проводящей немного дополнительного времени для изучения библиотеки. Или по крайней мере инкапсулируйте свой вывод путем эффективной записи собственного мини-механизма.

1
ответ дан 29 November 2019 в 00:27
поделиться

Если вы знаете, как обращаться с Apache , это должно помочь вам.

0
ответ дан mac 29 November 2019 в 00:27
поделиться

В более раннем вопросе я попросил минимальную реализацию для соединение веб-сайта Ajax к Python . Это могло бы выполнить то, что Вы ищете. Это имеет кнопку, которая инициировала некоторый код Python и затем показывает результат на странице. Мое решение использует встроенный веб-сервер в Python, таким образом, это действительно легко (никакие дополнительные пакеты или даже Apache).

0
ответ дан Community 29 November 2019 в 00:27
поделиться

При настройке, , пожалуйста, , будьте осторожны, чтобы ограничить доступ к сценариям, которые выполняют некоторые действия на вашем веб-сервере. Недостаточно поместить их в каталог, где вы просто не публикуете URL, потому что рано или поздно кто-то их найдет.

По крайней мере, поместите эти сценарии в место, защищенное паролем. Вы не хотите, чтобы кто-то в Интернете мог запускать ваши сценарии.

0
ответ дан Greg Hewgill 29 November 2019 в 00:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: