2011-02-22 10 views
7

Digamos que tengo un script Python básico, test.py:Determinar si el script Python se ejecuta de forma local o como CGI

#!/usr/bin/python 

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

¿Cómo se podría determinar si el guión está siendo ejecutado localmente, por ejemplo:

python test.py 

O se llama a través de un navegador web, por ejemplo

http://example.com/test.py 

Esto no parece ser abordados en the documentation for the cgi module: visitar. Pensé que podría haber una diferencia en el resultado de cgi.FieldStorage() pero no parece haber una.

La única manera que puedo pensar para hacerlo es la siguiente:

#!/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" 

Es este el mejor y/o más ideal método? ¿Por qué por qué no?

Respuesta

6

Parece el mejor método. No hay mucha diferencia entre ser llamado desde la línea de comando y ser iniciado por el servidor web siguiendo una solicitud HTTP, excepto por las variables de entorno CGI, como REQUEST_METHOD.

Cuestiones relacionadas