Hello world Pyamf маленькое сообщение об ошибке
Привет, я пытаюсь связать Flex с Django с Pyamf
В качестве первого шага я попробовал базовый Hello World http://pyamf.org/wiki/DjangoHowto
Но это приводит к ошибке.
Я использую 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= код ошибки =500 type=u'AttributeError' description=u"Невозможно найти представление для пути ['/gateway/myservice/echo'], объект'DjangoGateway'не имеет атрибута'nam e'' Traceback: u"Не удается найти представление для пути ['/ gateway / myservice / echo'], объект 'DjangoGateway' не имеет атрибута 'name'"
2 ответа
Я думаю, что вам, возможно, понадобится убрать параметр запроса из вашего echo def, по крайней мере, метод на сайте примера pyamf не имеет этого параметра в методе
Хотя ошибка не связана, 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