를 일반 응용 프로그램에서 나는 서비스 내 응용 프로그램에서 pyAMF을 사용하고 있지만, 여기에서 설명하는 것처럼 스마트 서비스를 설정하려면 :
services = {
'users.login': login,
'test': router
}
을 설정하지만 이렇게 할 싶습니다
services = [
'users.login',
'test'
]
그리고 모든 요청은 라우터 기능으로 이동합니다. 여기에는 서비스 이름 (이 경우 "users.login"또는 "test"가 될 수 있음)과 입력 (즉, flex에 의해 Python으로 전송 된 객체) 인 의 두 가지 매개 변수가 사용됩니다. 그러면 flex의 명령 (service) .로그인". params를 사용하여 라우터를 실행하고 싶다면 commands.users.login 패키지에 로그인 기능이 열립니다. 내가 어떻게 그럴 수 있니? 감사.
from pyamf.remoting.gateway.django import DjangoGateway
from pyamf.remoting.gateway import UnknownServiceError
class MyGateway(DjangoGateway):
def __init__(self, router_func, **kwargs):
self.router = router_func
DjangoGateway.__init__(self, **kwargs)
def getServiceRequest(self, request, target):
try:
return DjangoGateway.getServiceRequest(self, request, target)
except UnknownServiceError, e:
pass
# cached service was not found, try to discover it
try:
service_func = self.router(target)
except:
# perhaps some logging here
service_func = None
if not service_func:
# couldn't find a service matching `target`, crap out appropriately
raise e
self.addService(service_func, target)
return DjangoGateway.getServiceRequest(self, request, target)
self.router
은 당신이 제공하는 기능입니다 : 내가 이것을 달성하기 위해, 제대로 질문을 이해한다면
안녕하세요! 나는 구글을 사용하고있다. 그러나 나는 그것을하는 방법 주위에 그것을 얻는다. 그러나 예상대로 작동하지 않습니다. 런타임시 패키지에서 함수를 가져와야합니다. 'a.b.c.d'명령을 요청하는 경우 'app.controllers.a.b.c.d'패키지에서 'd'기능을로드하고 실행하고 싶습니다. 그게 가능하니? –
감사합니다 지금 나는 그것을 작동하게했다! –