一个Django应用程序来进行基于web的投票。

pyrpc-django的Python项目详细描述


Pyrpc是一个Django应用程序,用于处理JSON远程过程调用 使用Django Rest框架。在

安装

pip install pyrpc-django

快速设置

  1. rest_frameworkpyrpc添加到已安装的应用程序设置中,如下所示:

    INSTALLED_APPS = [
        ...
        'rest_framework',
        'pyrpc',
    ]
    
  2. safe_methoddecorator添加到应用程序中的方法中。在

^{pr2}$
  1. 将pyrpc url添加到urls.py
from django.urls import path
from django.conf.urls import include
from pyrpc.urls import urls as pyrpc_urls

urlpatterns = [
    path('api/', include(pyrpc_urls)),
]
  1. 启动服务器:python manage.py runserver

发送请求

  1. 使用上面的示例,将下面的JSON发布到127.0.0.1:8000/api/methods/。在
{
    "id": 1,
    "jsonrpc": "2.0",
    "method": "sum_two_numbers",
    "params": {
        "args": [],
        "kwargs": {
            "operand1": 5,
            "operand2": 6
        }
    }
}
  1. 应返回一个JSON响应,如下所示:
{
    "id": 1,
    "jsonrpc": "2.0",
    "result": 11
}

返回方法列表

  1. 使用前面的示例,向127.0.0.1:8000/api/methods发送GET请求。在
  2. 方法列表及其说明应返回如下:
[
    {
        "name": "multiply_two_numbers",
        "kwargs": {
            "operand1": "Can be any float number.",
            "operand2": "Can be any float number."
        },
        "description": [
            "Returns the product of two numbers.",
            "Extended description of function."
        ],
        "returns": "operand1 * operand2."
    },
    {
        "name": "sum_two_numbers",
        "kwargs": {
            "operand1": "Can be any float number.",
            "operand2": "Can be any float number."
        },
        "description": [
            "Returns the sum of two numbers.",
            "Extended description of function."
        ],
        "returns": "operand1 + operand2."
    }
]

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
使用jaxrpc的Java eclipse WebService客户端   java编程方式在对象上写入名称   java Spring批处理:重试后跳过   java Android错误:错误:任务执行失败:应用程序:transformClassesWithDexForDebug'   带有清单文件nullPointerException的java Android元数据   spring Java Quartz调度作业停止运行   JavaMockito:如何在不调用实际方法的情况下,模拟带有参数和无效返回类型的静态方法?   java Tomcat连接池问题无法在关闭的连接上调用方法   java如何交换列表中的项目?   java如何停止线程并通过Toast在线程中正确显示文本?   java为什么连续写入OutputStream时偏移量0不会导致重复字节?   java我无法生成头文件   不兼容的返回类型错误java   修改值后键值对的java Jolt转换规范   java有自动更新Javadoc的工具吗?   java线程如何在ints自身实例类中共享变量   java继承一个非gwt模块   java Hibernate xml配置   使用netty4异步调用的java链接HTTP请求响应