Вопрос

У меня есть один модуль Python, который может быть вызван CGI-скриптом (передавая ему информацию из формы) или из командной строки (передавая ему параметры и аргументы из командной строки).Есть ли способ установить, был ли модуль вызван из CGI-скрипта или из командной строки??

Это было полезно?

Решение

Это сделает это:

import os
if os.environ.has_key('REQUEST_METHOD'):
    # You're being run as a CGI script.
else:
    # You're being run from the command line.

Другие советы

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

Вы будете счастливее всего, если разработаете свои сценарии таким образом, чтобы они работали точно таким же образом.Создавайте подобные вещи.

  • myscript.py - "реальная работа" - определяется в функциях и классах.

  • myscript_cgi.py - CGI-интерфейс, который импортирует myscript и использует классы и функции.

  • myscript_cli.py - интерфейс командной строки, который анализирует параметры командной строки, импортирует myscript и использует классы и функции.

Один скрипт, который выполняет все три вещи (реальную работу, интерфейс cgi, интерфейс cli), обычно является ошибкой.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top