ich möchte gerne mit Python auf meinem NAS-Server eine kleine Serverapplikation aufbauen, die es mir ermöglicht mit Hilfe von JSON-RPC Befehlen Skripte usw. auszuführen.
Dafür habe ich das Paket json-rpc 1.10.3 installiert und die Demo-Implementierung ausprobiert. Soweit funktioniert es, aber die Server-Seite verstehe ich nicht. Hier werde ich insbesondere aus der Dispatcher-Methode nicht schlau. die Doku dazu habe ich gelesen: http://json-rpc.readthedocs.io/en/lates ... tcher.html
Hier einmal der Referenzcode:
Code: Alles auswählen
from werkzeug.wrappers import Request, Response
from werkzeug.serving import run_simple
from jsonrpc import JSONRPCResponseManager, dispatcher
@dispatcher.add_method
def foobar(**kwargs):
return kwargs["foo"] + kwargs["bar"]
@Request.application
def application(request):
# Dispatcher is dictionary {<method_name>: callable}
dispatcher["echo"] = lambda s: s
dispatcher["add"] = lambda a, b: a + b
response = JSONRPCResponseManager.handle(
request.data, dispatcher)
return Response(response.json, mimetype='application/json')
if __name__ == '__main__':
run_simple('localhost', 4000, application)
wie gesagt, die Dispatcher-Methode und ihre Anwendung verstehe ich nicht.
Hier ist mir der Verwendungszweck nicht klar. Ich finde die Stelle nicht, an der diese Funktion jemals aufgerufen wird:
Code: Alles auswählen
@dispatcher.add_method
def foobar(**kwargs):
return kwargs["foo"] + kwargs["bar"]
Code: Alles auswählen
dispatcher["echo"] = ...
dispatcher["add"] = ...