Форум сайта python.su
Подскажите как организовать обмен данными между скриптами, работающими на двух разных серверах?
P.S. например, скрипт на одном сервере получает список файлов (и владельцев) в директории, этот список нужно передать на другой сервер, чтобы отобразить в веб сервере.
Офлайн
Офлайн
lorienнет, это не самый простой способ.
Скрипт, который будет принимать данные, это обыкновенная веб-страница, передавать можно разными способами, можно и XML-RPC. Самый простой путь, это слать POST-запрос, а принимающий скрипт будет являться обыкновенной формой.
Ну, а на передающей стороне POST-запрос можно через urllib отослать.
import xmlrpclib
from SimpleXMLRPCServer import SimpleXMLRPCServer
def is_even(n):
return n%2 == 0
server = SimpleXMLRPCServer(("localhost", 8000))
server.register_function(is_even, "is_even")
server.serve_forever()
import xmlrpclib
proxy = xmlrpclib.ServerProxy("http://localhost:8000/")
print "3 is even: %s" % str(proxy.is_even(3))
Отредактировано (Апрель 5, 2010 12:58:36)
Офлайн
Есть файловый сервер и есть веб сервер (django). Первый скрипт работает на файловом сервере. Я представляю себе следующий алгоритм:
1) пользователь открывает страницу в броузере;
2) скрипт из django должен отправить запрос на вызов скрипта файлового сервера;
3) скрипт файлового сервера должен вернуть список директорий/файлов на вебсервер;
4) скрипт джанго завершает генерировать страницу.
Если алгоритм верен, то я не вижу возможности использовать просто POST-запрос. Получается, что при использовании POST-запроса, необходимо будет принимать POST-запрос на файловом сервере и на веб сервере. Чтобы принимать POST запрос на файловом сервере нужно запустить вебсервер? В итоге получается что решение с использованием POST запросами равнозначно двум XML-RPC серверам?
Отредактировано (Апрель 5, 2010 18:20:42)
Офлайн
Подскажите, как передать массив через POST запрос?
Офлайн
qmanсформируй строку с разделителем: “1;2;3;4”, а на стороне приема сделай сплит
Подскажите, как передать массив через POST запрос?
Офлайн
lorienчто-то я упустил что веб сайт уже есть, в таком случае удобней будет отдельная страничка.
> что может быть проще?
Если на принимающей стороне уже есть веб-сайт, то может быть проще создать там дополнительную страницу для приёма данных
JSON
Офлайн
o7412369815963мне нужно передать более сложную структуру - список директорий и их владельцев.
сформируй строку с разделителем: “1;2;3;4”, а на стороне приема сделай сплит
Офлайн
qmanпример pickle или как предложили выше - jsono7412369815963мне нужно передать более сложную структуру - список директорий и их владельцев.
сформируй строку с разделителем: “1;2;3;4”, а на стороне приема сделай сплит
Офлайн
lorienЯ тоже больше к этому склоняюсь. Сейчас как раз думал над отправкой данных с десктопного приложения серверу.
Если на принимающей стороне уже есть веб-сайт, то может быть проще создать там дополнительную страницу для приёма данных, чем запускать отдельный сервер.
Офлайн