2010-02-04 3 views
10

У меня есть очень простой файл Python, называемый python1.py, содержание которого являются:Как выполнить скрипт Python на стороне сервера, используя jQuery?

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

Я хочу, чтобы выполнить это с JavaScript, например, так:

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

Однако, все, что происходит в что я получаю предупреждение, показывающее мне содержимое скрипта Python. Файл C: \ Temp \ test.txt не создается, поэтому ясно, что Python не был выполнен.

Как мне убедить код выполнить скрипт Python, а не просто его прочитать?

ответ

4

Вы можете выполнить сценарий непосредственно из браузера. Это больше похоже на проблему с конфигурацией веб-сервера, чем у jquery

+0

Нет, я не могу выполнить его непосредственно. Я использую Apache 2.2. Любые идеи, какие настройки мне нужно изменить? –

+0

См. Ответ от @Daniel –

+0

Хорошо, я нашел ошибку: я использовал Alias ​​в файле httpd.conf вместо ScriptAlias. Я теперь возвращаю вывод файла Python, но он все равно не будет создавать временный файл. Я оставлю это на вопрос –

7

Вам просто нужно настроить ваш веб-сервер для выполнения своих * .py-скриптов вместо того, чтобы обслуживать их как обычный текст.

Если вы используете Apache в качестве веб-сервера, вам необходимо включить mod_python или mod_wsgi.


EDIT:

Поскольку вы используете с помощью Apache, вы можете проверить следующую статью, в которой кратко описывает, как настроить модуль mod_python:

1

Если ваш сценарий настолько прост, вам было бы лучше использовать CGI на сервере а не mod_python или mod_wsgi, как это было предложено другими. Для получения дополнительной информации о том, как настроить Apache для CGI с Python и простые примеры сценариев см:

http://webpython.codepoint.net/cgi_tutorial

+1

, почему CGI лучше, чем mod_python? – lynxoid

7

Вы также можете использовать с открытым исходным кодом проекта Pico. Это действительно элегантный способ вызова кода Python на стороне сервера с Javascript на стороне клиента.

Автор представил несколько простых примеров здесь https://github.com/fergalwalsh/pico/wiki/Example-1:-Hello-World

+0

Можно ли использовать PICO в приложениях GAE? –

+0

После многих головных болей, пытающихся заставить Apache и mod_python работать, я (к счастью) наткнулся на это сообщение, где мне удалось мгновенно поговорить с JS и Python друг с другом. Скалы Пико! Чрезвычайно легко настроить и реализовать. –

Смежные вопросы