当前位置: 首页 > 工具软件 > jsonrpc > 使用案例 >

【Django】Django使用jsonrpc

谷博艺
2023-12-01
  1. 文档:https://gitee.com/hyteer/django-json-rpc
  2. 安装 Django-json-rpc:pip install django-json-rpc
  3. 编写json-prc方法:在相应的应用的view.py中编写如下代码
    from jsonrpc import jsonrpc_method
    
    @jsonrpc_method('common.persons')
    def persons(request):
        return [1, 2, 3]
    
    @jsonrpc_method('req')
    def person_s(request, *params):
        # arr = []
        # for i in params:
        #     arr.append(i)
        # print(params)
        return list(params)
    
  4. 为jsonrpc的方法添加路由
    与wsgi同目录的urls.py文件修改如下
    from django.contrib import admin
    from django.urls import path, include
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('common/', include('common.urls')),
    ]
    
    相对应的模块下的urls.py文件修改如下
    from django.urls import path
    from . import views
    from jsonrpc import jsonrpc_site
    
    urlpatterns = [
        # path('rpc/', views),
        # path('person/', views.person),
        path('rpc/', jsonrpc_site.dispatch)
    ]
    
  5. 测试请求
    • 请求地址: http://127.0.0.1:8000/common/rpc/
    • 请求参数
      {
          "id": "425d9d70-ccbe-11ea-a8ca-7470fd0bd93a",
          "method":"comon.persons",
          "params":[1,2,3],
          "jsonrpc": "2.0"
      }
      
    • 返回结果
      {
          "id": "425d9d70-ccbe-11ea-a8ca-7470fd0bd93a",
          "result": [
              1,
              2,
              3
          ],
          "jsonrpc": "2.0"
      }
      
  6. 测试调用
    from jsonrpc.proxy import ServiceProxy
    
    url = "http://127.0.0.1:8000/rpc-person/"
    s = ServiceProxy(url)
    res = s.comon.persons.data()
    print(res) # 返回结果同上
    
 类似资料: