Определите, выполняется ли скрипт Python локально или как CGI - PullRequest
7 голосов
/ 22 февраля 2011

Допустим, у меня есть базовый скрипт на Python, test.py:

#!/usr/bin/python

print "Content-type: text/html\n\n"
print "<html>Hello world!</html>"

Как определить, выполняется ли сценарий локально, например:

python test.py

Или вызывается через веб-браузер, например посещение:

http://example.com/test.py

Похоже, что это не решено в документации для cgi модуля . Я думал, что может быть разница в результате cgi.FieldStorage(), но, похоже, его нет.

Единственный способ, которым я могу думать, это сделать следующим образом:

#!/usr/bin/python
import os

print "Content-type: text/html\n\n"
print "<html>Hello world!</html>"

if 'REQUEST_METHOD' in os.environ :
    print "This is a webpage"
else :
    print "This is not a webpage"

Это лучший и / или самый идеальный метод? Почему / почему нет?

1 Ответ

6 голосов
/ 22 февраля 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...