簡體   English   中英

Hello world Pyamf 小錯誤信息

[英]Hello world Pyamf small error message

嗨,我正在嘗試使用 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' object has no attribute 'name e '" Traceback: u “找不到路徑 ['/gateway/myservice/echo'] 的視圖,'DjangoGateway' object 沒有屬性 ' name '”

我認為您可能需要從 echo def 中取出請求參數,至少 pyamf 示例站點上的方法在方法中沒有該參數

盡管錯誤無關,但 JMP 是正確的 - 您在網關上設置了expose_request=False ,並且 echo 的服務定義的第一個參數為 Django Http 請求 object。

這是行不通的,但是 PyAMF 在這里確實允許一些粒度,您可以使用 expose_request 裝飾器,例如:

from pyamf.remoting.gateway import expose_request

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM