2010-02-04 2 views
10

J'ai un fichier Python très simple, appelé python1.py, dont le contenu est:Comment exécutez-vous un script Python côté serveur en utilisant jQuery?

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

Je souhaite exécuter ce à partir de JavaScript, comme ceci:

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

Cependant, tout ce qui arrive est que je reçois une alerte me montrant le contenu du script Python. Le fichier C: \ Temp \ test.txt n'est pas créé, donc clairement le Python n'a pas été exécuté. Comment puis-je persuader le code d'exécuter le script Python au lieu de simplement le lire?

Répondre

4

Etes-vous capable d'exécuter le script directement à partir du navigateur. Cela ressemble plus à un problème de configuration de serveur Web que celui de jquery

+0

Non, je ne peux pas l'exécuter directement. J'utilise Apache 2.2. Des idées quel paramètre je dois modifier? –

+0

Voir la réponse de @Daniel –

+0

Bon, j'ai trouvé l'erreur: j'ai utilisé Alias ​​dans mon fichier httpd.conf au lieu de ScriptAlias. Je retourne maintenant la sortie du fichier Python, mais il ne créera toujours pas le fichier temporaire. Je vais laisser cela à une autre question –

7

Vous avez simplement besoin de configurer votre serveur Web pour exécuter vos scripts * .py, au lieu de les servir en texte brut. Si vous utilisez Apache en tant que serveur Web, vous devez activer mod_python ou mod_wsgi.


EDIT:

Depuis que vous utilisez en utilisant Apache, vous pouvez consulter l'article suivant, qui décrit brièvement comment configurer le module mod_python:

1

Si votre script est aussi simple, il vaut mieux utiliser CGI sur le serveur côté plutôt que mod_python ou mod_wsgi comme suggéré par d'autres. Pour plus de détails sur la façon de configurer Apache pour CGI avec Python et des exemples simples de script voir:

http://webpython.codepoint.net/cgi_tutorial

+1

Pourquoi CGI est-il meilleur que mod_python? – lynxoid

7

Vous pouvez également utiliser le projet opensource Pico. C'est un moyen très élégant d'appeler le code Python côté serveur du côté client Javascript.

L'auteur a fourni quelques exemples simples ici https://github.com/fergalwalsh/pico/wiki/Example-1:-Hello-World

+0

Est-il possible d'utiliser PICO dans les applications GAE? –

+0

Après de nombreux casse-tête pour essayer de faire fonctionner Apache et mod_python, j'ai (heureusement) trébuché sur ce post, où j'ai pu faire parler JS et Python en un rien de temps. Pico roches! Extrêmement facile à installer et à mettre en œuvre. –

Questions connexes