【问题标题】:Hello world Pyamf small error messageHello world Pyamf 小错误信息
【发布时间】:2009-03-10 17:27:25
【问题描述】:

您好,我正在尝试使用 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 level=error code=500 type=u'AttributeError' description=u"找不到视图 对于路径 ['/gateway/myservice/echo'],'DjangoGateway' 对象没有属性 'nam e'" 追溯: u"找不到路径 ['/gateway/myservice/echo'] 的视图,'DjangoGateway' 对象 ha s 没有属性 'name'"

【问题讨论】:

  • 我的错误是我在 middlwares 中与 django amf 混合:/

标签: python django apache-flex pyamf


【解决方案1】:

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

【讨论】:

    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2010-10-20
      • 1970-01-01
      • 1970-01-01
      • 2017-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-05
      相关资源
      最近更新 更多