Table of Contents
Django Howto
Introduction
The Django Remoting gateway included in PyAMF allows you to expose functions in Django 0.96 or newer to AMF clients and servers.
Example
Exposing functions for AMF remoting is simple by defining a gateway (a dispatcher) like this:
# yourproject/yourapp/amfgateway.py from pyamf.remoting.gateway.django import DjangoGateway def echo(request, data): return data services = { 'myservice.echo': echo # could include other functions as well } echoGateway = DjangoGateway(services)
The request in the first argument to the echo function corresponds to the request object passed to every Django view function. To disable this function add expose_request=False when instantiating the DjangoGateway. As in:
# yourproject/yourapp/amfgateway.py from pyamf.remoting.gateway.django import DjangoGateway def echo(data): return data services = { 'myservice.echo': echo # could include other functions as well } echoGateway = DjangoGateway(services, expose_request=False)
The instance echoGateway is a callable object suitable to be used as a Django view. To insert it into your url structure add it to your urlconf:
# yourproject/urls.py urlpatterns = patterns('', # AMF Remoting Gateway (r'^gateway/', 'yourproject.yourapp.amfgateway.echoGateway'), )
To test the gateway you can use a Python AMF client like this:
from pyamf.remoting.client import RemotingService gw = RemotingService('http://127.0.0.1:8000/gateway/') service = gw.getService('myservice') print service.echo('Hello World!')
References
- ByteArray example using Flex and Django
- Interactive Python Shell example with Flex and Django
- DjangoGateway in the API documentation
- Joel Hooks - Communication with Django from Flex
- Flex + PyAMF + Django + MySQL (chinese)
May be some problems here
- def echo(data): # if you get echo() takes exactly 1 argument (2 given)...
- FIX: change "(data)" to "(self,data)"
Attachments
-
django-logo.png
(8.4 kB) - added by thijs
6 months ago.
django logo based on original from http://media.djangoproject.com/img/logos/django-logo-positive.png

