Найти - Пользователи
Полная версия: обмен данными между скриптами, на разных серверах?
Начало » Python для новичков » обмен данными между скриптами, на разных серверах?
1 2 3
qman
Подскажите как организовать обмен данными между скриптами, работающими на двух разных серверах?
P.S. например, скрипт на одном сервере получает список файлов (и владельцев) в директории, этот список нужно передать на другой сервер, чтобы отобразить в веб сервере.
o7412369815963
XML-RPC
o7412369815963
lorien
Скрипт, который будет принимать данные, это обыкновенная веб-страница, передавать можно разными способами, можно и XML-RPC. Самый простой путь, это слать POST-запрос, а принимающий скрипт будет являться обыкновенной формой.

Ну, а на передающей стороне POST-запрос можно через urllib отослать.
нет, это не самый простой способ.

вот xml-rpc:
сервер
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))
что может быть проще?

ЗЫ: веб страницы для веб просмотра :)
qman
Есть файловый сервер и есть веб сервер (django). Первый скрипт работает на файловом сервере. Я представляю себе следующий алгоритм:
1) пользователь открывает страницу в броузере;
2) скрипт из django должен отправить запрос на вызов скрипта файлового сервера;
3) скрипт файлового сервера должен вернуть список директорий/файлов на вебсервер;
4) скрипт джанго завершает генерировать страницу.
Если алгоритм верен, то я не вижу возможности использовать просто POST-запрос. Получается, что при использовании POST-запроса, необходимо будет принимать POST-запрос на файловом сервере и на веб сервере. Чтобы принимать POST запрос на файловом сервере нужно запустить вебсервер? В итоге получается что решение с использованием POST запросами равнозначно двум XML-RPC серверам?
qman
Подскажите, как передать массив через POST запрос?
o7412369815963
qman
Подскажите, как передать массив через POST запрос?
сформируй строку с разделителем: “1;2;3;4”, а на стороне приема сделай сплит
o7412369815963
lorien
> что может быть проще?
Если на принимающей стороне уже есть веб-сайт, то может быть проще создать там дополнительную страницу для приёма данных

JSON
что-то я упустил что веб сайт уже есть, в таком случае удобней будет отдельная страничка.
вместо json можно попробовать использовать pickle
qman
o7412369815963
сформируй строку с разделителем: “1;2;3;4”, а на стороне приема сделай сплит
мне нужно передать более сложную структуру - список директорий и их владельцев.
o7412369815963
qman
o7412369815963
сформируй строку с разделителем: “1;2;3;4”, а на стороне приема сделай сплит
мне нужно передать более сложную структуру - список директорий и их владельцев.
пример pickle или как предложили выше - json
igor.kaist
lorien
Если на принимающей стороне уже есть веб-сайт, то может быть проще создать там дополнительную страницу для приёма данных, чем запускать отдельный сервер.
Я тоже больше к этому склоняюсь. Сейчас как раз думал над отправкой данных с десктопного приложения серверу.
XML-RPC сервер еще ведь отдельно мониторить нужно на предмет падений.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB