Django的简单现代JSON-RPC和XML-RPC服务器实现

django-modern-rpc的Python项目详细描述


https://travis-ci.org/alorence/django-modern-rpc.svg?branch=masterhttps://coveralls.io/repos/github/alorence/django-modern-rpc/badge.svg?branch=masterhttps://codecov.io/gh/alorence/django-modern-rpc/branch/master/graph/badge.svghttps://readthedocs.org/projects/django-modern-rpc/badge/?version=latesthttps://badge.fury.io/py/django-modern-rpc.svghttps://img.shields.io/badge/demo-online-brightgreen.svg

说明

django modern rpc提供了一个简单的解决方案来实现远程过程调用(rpc)服务器,作为django的一部分 项目。它支持所有主要的django和python版本。

项目的主要功能是:

  • 简单的pythonic api
  • python 2.7、3.3、3.4、3.5和3.6
  • django 1.8至2.0
  • XML-RPCJSON-RPC 2.0支持(不支持json-rpc 1.0)
  • HTTP基本身份验证支持
  • 自定义身份验证支持
  • 基于请求的Content-Type头的自动协议检测
  • 基于异常的高级错误管理
  • 多个入口点,附带特定的方法和协议
  • 基于docstrings自动生成的rpc方法文档
  • 系统自省方法:

快速启动

  1. 使用pip在您的环境中安装软件包:

    pip install django-modern-rpc
    
  2. 将它添加到django应用程序中,在settings.py

    INSTALLED_APPS = [
        ...
        'modernrpc',
    ]
    
  3. 声明一个入口点,一个生成对传入请求的正确rpc响应的视图:

    # In myproject/rpc_app/urls.py
    from django.conf.urls import url
    
    from modernrpc.views import RPCEntryPoint
    
    urlpatterns = [
        url(r'^rpc/', RPCEntryPoint.as_view()),
    ]
    
  4. 使用@rpc_method在django modern rpc注册表中注册全局函数:

    # In myproject/rpc_app/rpc_methods.py
    from modernrpc.core import rpc_method
    
    @rpc_method
    def add(a, b):
        return a + b
    
  5. 声明包含rpc方法的python模块列表,在settings.py

    MODERNRPC_METHODS_MODULES = [
        'rpc_app.rpc_methods'
    ]
    

现在,您可以从客户机调用方法add

>>>fromxmlrpc.clientimportServerProxy>>>client=ServerProxy('http://localhost:8000/rpc/')>>>print(client.add(2,3))5

有关详细信息,请阅读the full documentation

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

推荐PyPI第三方库


热门话题
java如何在jetty请求日志中添加milliscond字段?   java在使用Scanner类从文件读取信息时遇到问题   为什么。类不适用于泛型类型?   SQLite插入上的java空指针异常   java能告诉我们Guava缓存是在禁用统计数据的情况下构建的吗?   java在应用程序中使用常量   java无法使用AutoIT和Selenium Webdriver在所需位置/文件夹保存图像   java如何在jtable中更新jprogress栏   java是比较给定日期和当前日期(在给定时区中没有时间段)的最佳方法   安卓代码中的java错误   java无法访问实体类中的字段   java如何在tomcat中处理三个JDBC连接池?   java无法使用Spring Security保护AngularJS页面   如何在没有TCP/IP协议栈的情况下用Java发送以太帧