Hello world Pyamf小错误消息

时间:2009-03-10 17:27:26

标签: python django flex pyamf

您好我正在尝试使用Pyamf

将flex链接到django

作为第一步,我尝试了基本的Hello World http://pyamf.org/wiki/DjangoHowto

但这会导致ErrorFault。

我使用django 1.0.2

项目的根文件夹中的

amfgateway.py (与设置相同)

import pyamf
from pyamf.remoting.gateway.django import DjangoGateway
from django.contrib.auth.models import User

pyamf.register_class(User, 'django.contrib.auth.models.User')

def get_users(requet):
    return User.objects.all()

def echo(request, data):
    return data

services = {
    'myservice.echo': echo,
    'myservice.get_users': get_users,
}

edoGateway = DjangoGateway(services, expose_request=False)

在urls.py

urlpatterns = patterns('',

    # test pyamf
    url(r'^gateway/', 'amfgateway.edoGateway'),
    ...
)

然后当我用pyamf客户端

测试示例时
from pyamf.remoting.client import RemotingService

gw = RemotingService('http://127.0.0.1:8000/gateway/')
service = gw.getService('myservice')

print service.echo('Hello World!')

ErrorFault级别=错误代码= 500 type = u'AttributeError'description = u“找不到视图 对于路径['/ gateway / myservice / echo'],'DjangoGateway'对象没有属性' nam ë'” 追溯: 你“找不到路径的视图['/ gateway / myservice / echo'],'DjangoGateway'对象ha 没有属性“名称”“

2 个答案:

答案 0 :(得分:3)

我认为您可能需要从echo def中取出请求参数,至少pyamf示例站点上的方法在方法中没有该参数

答案 1 :(得分:2)

虽然错误是无关的,但JMP是正确的 - 你在网关上有expose_request=False,而echo的服务定义有第一个参数作为Django Http请求对象。

这不起作用,但是PyAMF在这里允许一些粒度,你可以使用expose_request装饰器,例如:

from pyamf.remoting.gateway import expose_request

@expose_request
def echo(request, data):
    return echo