2010-02-04 15 views
10

Tengo un archivo muy simple Python, llamado python1.py, cuyos contenidos son:¿Cómo se ejecuta una secuencia de comandos de Python en el lado del servidor usando jQuery?

f = open('C:\\Temp\\test.txt', 'w') 
f.write('Succeeded') 
f.close() 

deseo de ejecutar esto desde JavaScript, así:

jQuery.ajax({ 
    type: "POST", 
    url: "/cgi-bin/python1.py", 
    success: function (msg) { 
     alert("Data Saved: " + msg); 
    } 
}); 

Sin embargo, todo lo que sucede es que recibo una alerta mostrándome el contenido de la secuencia de comandos de Python. El archivo C: \ Temp \ test.txt no se crea, por lo que claramente Python no se ejecutó.

¿Cómo persuadir al código para que ejecute el script de Python en lugar de solo leerlo?

Respuesta

4

¿Puede ejecutar el script directamente desde el navegador? Esto se parece más a un problema de configuración de servidor web que a

de jquery
+0

No, no puedo ejecutarlo directamente. Estoy usando Apache 2.2. ¿Alguna idea de qué configuración debo modificar? –

+0

Ver la respuesta de @Daniel –

+0

Bien, he encontrado el error: utilicé Alias ​​en mi archivo httpd.conf en lugar de ScriptAlias. Ahora estoy devolviendo el resultado del archivo de Python, pero todavía no creará el archivo temporal. Voy a dejar eso a otra pregunta –

7

Simplemente necesita configurar su servidor web para ejecutar sus scripts * .py, en lugar de publicarlos como texto sin formato.

Si está utilizando Apache como servidor web, debe habilitar mod_python o mod_wsgi.


EDIT:

dado que está utilizando el uso de Apache, es posible que desee comprobar el siguiente artículo, que describe brevemente cómo configurar el módulo mod_python:

1

Si su script es así de simple, sería mejor que use CGI en el servidor lado en lugar de mod_python o mod_wsgi según lo sugerido por otros. Para más detalles sobre cómo configurar Apache para CGI con Python y ejemplos de secuencias de comandos simples ver:

http://webpython.codepoint.net/cgi_tutorial

+1

¿por qué CGI es mejor que mod_python? – lynxoid

7

También puede utilizar el proyecto de código abierto Pico. Es una forma realmente elegante de llamar al código Python del lado del servidor desde el lado del cliente Javascript.

El autor ha proporcionado algunos ejemplos sencillos aquí https://github.com/fergalwalsh/pico/wiki/Example-1:-Hello-World

+0

¿Hay alguna forma en que PICO se pueda usar en las aplicaciones GAE? –

+0

Después de muchos dolores de cabeza tratando de hacer que Apache y mod_python funcionen, (afortunadamente) tropecé con esta publicación, donde pude hacer que mi JS y Python hablaran entre sí en un abrir y cerrar de ojos. Pico rocas! Extremadamente fácil de configurar e implementar. –

Cuestiones relacionadas