我想知道如何使用jsonrpcserver软件包(> = 4.0)处理另一个python文件中的方法。
在我的示例中,添加jsonrpcserver的文件中的方法'ping'正在工作。 但我也想将'a.py'中的'hello'命名为'a.hello'。当从“ client.py”中使用“ hello”调用时,它可以工作,但我不知道如何将其作为“ a.ping”来实现。
server.py
取自示例(https://jsonrpcserver.readthedocs.io/en/latest/examples.html#aiohttp)
#! /usr/bin/python3
from aiohttp import web
from jsonrpcserver import method, async_dispatch as dispatch
import a
@method
async def ping():
return "pong"
async def handle(request):
request = await request.text()
response = await dispatch(request)
if response.wanted:
return web.json_response(response.deserialized(), status=response.http_status)
else:
return web.Response()
app = web.Application()
app.router.add_post("/", handle)
if __name__ == "__main__":
web.run_app(app, port=5000)
a.py
在这里,我想使用一个名为“ a.hello”的方法。但是,方法名称将为“ hello”。
from jsonrpcserver import method
@method
async def hello():
return "world"
client.py
#! /usr/bin/python3
from jsonrpcclient.clients.http_client import HTTPClient
client = HTTPClient("http://localhost:5000")
response = client.request("ping")
print(response.data.result)
response = client.request("a.hello") # this is what I would like to have
print(response.data.result)