liberia XMLrpclib
Sebastian Lara Menares
slara en udec.cl
Mie Dic 19 22:01:34 CET 2007
carlos villa wrote:
> buenos dias alguien me puede explicar que hacen estas lineas de codigo
> de la libreria
> XMLrpclib estas son las funciones SimpleXMLRPCServer,
> register_function, serve_forever ????
> y si alguien tiene una API de la libreria o donde conseguirla
> agradeceria mucho...
>
> s = SimpleXMLRPCServer(("",8001))
> s.register_function(insertar)
> s.serve_forever()
>
Hola,
con register_function() puedes dejar funciones disponibles como
servicios. Esto también se puede hacer con register_instance(), con lo
cual registras instancias de una clase para que estén también
disponibles. serve_forever() es un metodo de la instancia del servidor
que lo mantiene en un loop infinito esperando eventos.
por ejemplo, un simple servidor sería:
------------------------------
import SimpleXMLRPCServer
def adios():
return 'Adios!'
class Functions(object):
def __init__(self):
pass
def imprimir(argumento):
""" Imprime el argumento en pantalla """
return argumento
if __name__ == '__main__':
server = SimpleXMLRPCServer.SimpleXMLRPCServer("localhost", 8001)
server.register_instance(Functions())
server.register_function(adios)
server.serve_forever()
-----------------------------------
Esto lo puedes probar con un pequeño cliente o directamente desde el
interprete.
> import xmlrpclib
> server = xmlrpclib.Server('http://localhost:8001')
> print server.imprimir('Hola')
Hola
> print server.adios()
Adios!!
Hasta por ahí debería funcionar. El resto está en la documentación de
las bibliotecas de Python para el servidor[1] y el cliente[2]. Todo el
código de como están implementadas estas bibliotecas esta en la
distribución de Python.
[1]: http://docs.python.org/lib/module-SimpleXMLRPCServer.html
[2]: http://docs.python.org/lib/module-xmlrpclib.html
--
Sebastián Lara Menares
Departamento Ingeniería Eléctrica
Universidad de Concepción
_______________________________________________
Lista de correo Python-es
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes
Más información sobre la lista de distribución Python-es