Pregunta

Quiero obtener un Python simple "hola mundo" secuencia de comandos de la página web para ejecutarse en Windows Vista / Apache pero choca con diferentes paredes Estoy usando WAMP He instalado mod_python y el módulo muestra, pero no estoy muy seguro de lo que se supone que debo hacer, p. http.conf (cosas como AddHandler mod_python .py o me llevan a un archivo no encontrado, o prohibido, o errores de módulo no encontrado al acceder a http: //localhost/myfolder/index.py ). Puedo hacer que mod_python.publisher funcione, pero ¿quiero " quiero " esto / necesita esto?

¿Alguien puede ayudar?

¡Gracias!

¿Fue útil?

Solución

Manténgase alejado de mod_python . Una idea engañosa común es que mod_python es como mod_php , pero para python. Eso no es verdad. Wsgi es el estándar para ejecutar aplicaciones web de Python, definido por PEP 333 . Por lo tanto, use mod_wsgi en su lugar.

O, alternativamente, use un marco web que tenga un servidor. La Cherrypy es particularmente buena. Podrá ejecutar su aplicación tanto de forma independiente como a través de mod_wsgi .

Un ejemplo de la aplicación Hello World con cherrypy:

import cherrypy

class HelloWorld(object):
    def index(self):
        return "Hello World!"
    index.exposed = True

application = HelloWorld()
if __name__ == '__main__':
    cherrypy.engine.start()
    cherrypy.engine.block()

Muy fácil ¿eh? La ejecución de esta aplicación directamente en Python iniciará un servidor web. La configuración de mod_wsgi hará que se ejecute dentro de apache.

Otros consejos

No NECESITA mod_python para ejecutar el código Python en la web, puede usar una programación CGI simple para ejecutar su código python, con las instrucciones en el siguiente enlace: http://www.imladris.com/Scripts/PythonForWindows.html

Eso debería brindarle algunas de las opciones de configuración que necesita para habilitar Python con CGI, y una búsqueda en Google debería brindarle una gran cantidad de otra información sobre cómo programarlo y tal.

Mod_python es útil si quieres un poco más "amigable" interfaz, o más control sobre la solicitud en sí. Puede usarlo para crear filtros de solicitud y otras cosas para el servidor Apache, y con el controlador del editor obtendrá una forma más sencilla de manejar las solicitudes de la página web a través de Python.

El controlador de editor funciona asignando URL a objetos / funciones de Python. Esto significa que puede definir una función llamada 'foo' en su archivo python, y cualquier solicitud a http: // localhost / foo llamaría a esa función automáticamente. Más información aquí: http: // www. modpython.org/live/current/doc-html/hand-pub-alg-trav.html

En cuanto a la configuración de Apache para hacer que las cosas funcionen, algo como esto debería servirle bien

<Directory /var/www/html/python/>
  SetHandler mod_python
  PythonHandler mod_python.publisher
  PythonDebug On
</Directory>

Si tiene / var / www / html / configurado como la raíz de su servidor web y tiene un archivo llamado index.py en el directorio python /, entonces cualquier solicitud a http: // localhost / python / foo debería llamar a la función foo () en index.py, o fallar con un 404 si no existe.

  

AddHandler mod_python .py

¿Has configurado 'PythonHandler'?

En estos días, considere usar WSGI en lugar de interfaces nativas mod-python para opciones de implementación más amplias. Ya sea a través del soporte WSGI de mod-python o, quizás mejor, mod-wsgi. (CGI a través de, por ejemplo, wsgiref también funcionará bien y es fácil de configurar en un entorno de desarrollo donde no le importa su rendimiento de basura).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top