Simple and modern RPC Server for Django
This project is under development, and is not ready for production. You are free to install and test it, provide feedback (report issues or make pull requests) but there is no guarantee that the module is free of bugs. In addition, all planned features have not been implemented yet.
django-modern-rpc is a free, lightweight RPC server for Django projects. It supports JSON-RPC and XML-RPC requests under python 2.7, 3.3, 3.4, 3.5 and Django 1.8, 1.9 and 1.10.
The project is under active development, so all the features are not yet implemented. The list of available features is:
- XML-RPC & JSON-RPC support
- Usual errors are correctly reported to user according to the standard
- Multi-entry point, with specific methods and protocol attached
- Supported system methods:
Features planned to implement
- System introspection methods (methodHelp(), etc.)
To install django-modern-rpc, simply use pip:
pip install django-modern-rpc
Decorate the methods you want to make reachable from RPC call:
# In myproject/rpc_app/rpc_methods.py from modernrpc.core import rpc_method @rpc_method() def add(a, b): return a + b
and make sure these functions are imported at Django startup. A simple way to do that is to import them in your app’s module:
# In myproject/rpc_app/__init__.py from rpc_app.rpc_methods import add
Now, you have to declare an entry point. This is a standard Django view which will automatically route the request to the right handler (for JSON-RPC or XML-RPC call) and call the method on the server.
# In myproject/rpc_app/urls.py from django.conf.urls import url from modernrpc.views import RPCEntryPoint urlpatterns = [ url(r'^rpc/', RPCEntryPoint.as_view(), name="rpc_entry_point"), ]
Now, you can call the function add from a client:
try: # Python 3 import xmlrpc.client as xmlrpc_module except ImportError: # Python 2 import xmlrpclib as xmlrpc_module client = xmlrpc_module.ServerProxy('http://127.0.0.1:8000/all-rpc/') print(client.add(2, 3)) # Returns: 5
Release history Release notifications
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size & hash SHA256 hash help||File type||Python version||Upload date|
|django_modern_rpc-0.2.3-py2.py3-none-any.whl (16.2 kB) Copy SHA256 hash SHA256||Wheel||py2.py3|
|django-modern-rpc-0.2.3.tar.gz (11.2 kB) Copy SHA256 hash SHA256||Source||None|