<?xml version="1.0" encoding="UTF-8" ?>
<rdf:RDF xmlns="http://usefulinc.com/ns/doap#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><Project><name>rpc4django</name>
<shortdesc>Handles JSONRPC and XMLRPC requests easily with Django</shortdesc>
<description>========================
RPC4Django Documentation
========================

Installation
============

Prerequisites
-------------

RPC4Django has been tested on Mac OS, Linux and Windows.

- `Python &lt;http://www.python.org&gt;`_ 2.4 - 2.6
- `Django &lt;http://www.djangoproject.com&gt;`_ 1.0+
- `Docutils &lt;http://docutils.sourceforge.net&gt;`_ (optional)

Source Install Method
---------------------
This is the preferred method for installing RPC4Django. It may require special
privileges such as sudo.

::

	$&gt; tar xvfz rpc4django-x.y.z.tar.gz 
	$&gt; cd rpc4django-x.y.z 
	$&gt; python setup.py install

Easy Install Method
-------------------
RPC4Django can be installed this way if setuptools is installed and easy_install
is in your path. 
It may require special privileges such as sudo.

::

    $&gt; easy_install rpc4django
    
No Installation Method
----------------------
This method installs RPC4Django only for one specific django project but does
not require any special system access.

::

	$&gt; tar xvfz rpc4django-x.y.z.tar.gz 
	$&gt; cd rpc4django-x.y.z 
	$&gt; cp -r rpc4django YOUR_DJANGO_PROJECT_DIRECTORY

Configuration
=============

1. First, you need to add new url pattern to your root ``urls.py`` file. This
file should be the one pointed to by ``ROOT_URLCONF`` in settings.py. You can
replace ``r'^RPC2$'`` with anything you like. 
  
	::
	
	    # urls.py 
	    #... 
	    urlpatterns = patterns('', 
		    # if installed via no install method  
		    #(r'^RPC2$', 'YOURPROJECT.rpc4django.views.serve_rpc_request'),  
		    # if installed via source or easy_install  
		    (r'^RPC2$', 'rpc4django.views.serve_rpc_request'), 
	    )
    
2. Second, add RPC4Django to the list of installed applications in your
``settings.py``. 

	::
	
	    # settings.py 
	    #... INSTALLED_APPS = ( 
		    # if installed via no install  
		    #'YOURPROJECT.rpc4django',  
		    # if installed via source or easy_install  
		    'rpc4django', 
	    )
    
3. Lastly, you need to let RPC4Django know which methods to make available. This
is done with the decorator ``@rpcmethod``. RPC4Django imports all the apps in
``INSTALLED_APPS`` and makes any methods importable via ``__init__.py`` with the
``@rpcmethod`` decorator available as RPC methods. You can always write your RPC
methods in another module and simply import it in ``__init__.py``. 
  
	::
	
	    # testapp/__init__.py 
	    from rpc4django import rpcmethod 
	    
	    # This imports another method to be made available as an RPC method 
	    # This method should also have the @rpcmethod decorator 
	    # from mymodule import myrpcmethod 
	    
	    # The doc string supports reST if docutils is installed
	    @rpcmethod(name='mynamespace.add', signature=['int', 'int', 'int']) 
	    def add(a, b):  
	        '''Adds two numbers together  
	        &gt;&gt;&gt; add(1, 2)  3  
	        '''  
	        return a+b</description>
<download-page>http://www.davidfischer.name/rpc4django</download-page>
<homepage rdf:resource="http://www.davidfischer.name/rpc4django" />
<maintainer><foaf:Person><foaf:name>David Fischer</foaf:name>
<foaf:mbox_sha1sum>3b4c15f978545ae5abbc1ec1c0ad2a0be7837285</foaf:mbox_sha1sum></foaf:Person></maintainer>
<release><Version><revision>0.1.1</revision></Version></release>
</Project></rdf:RDF>