涡轮齿轮xmlrpc控制器
tgext.xmlrpc的Python项目详细描述
==欢迎使用TurboGears xmlrpc扩展名==
==安装===
1。将其添加到项目中。这可以通过修改
setup.py来完成。将“tgext.xmlrpc”添加到**安装要求**列表中。
2。在项目中运行{{python setup.py develop}},以安装它。
==usage==
usage非常简单。创建一个控制器,装饰xmlrpc
方法,并将控制器安装到某个地方。这可以通过以下方式实现:
{{{
从tgext.xmlrpc导入xmlrpc controller,xmlrpc
myxmlrpccenter类(xmlrpccontroller):
@xmlrpc([['int','int','int','int','array']],helpstr=“将数字相加”)
def addit(self,*p,**kw):
返回和(p)
}
添加以下行:
{{{
xmlrpc=myxmlrpccenter()
}
如果将其添加到rootcontroller,则可以访问http://localhost:8080/xmlrpc并获取帮助页。您可以向方法“addit”发送
xmlrpc请求,并获得结果。
==详细信息===
===xmlrpc decorator====
>xmlrpc decorator接受两个参数:
*签名列表列表
*将在索引页上显示的帮助字符串,或在为此调用
system.method help时。方法
请注意,签名是列表列表很重要。列表的
元素只是标识有效xmlrpc
数据类型的字符串。您可以在http://en.wikipedia.org/wiki/xml-rpc上查看可接受数据类型的列表
so,有效/无效签名的示例:
*{{{[['string','int']}}<;--有效,接受int,返回string
*{{{{['string','int']}}<;--无效,两个字符串的列表,不是列表列表
===xmlrpc方法===
事实上,您甚至可以更加严格,因为
turbogears方法的一个常见习惯用法是使用这样的代码:
{{{
class myxml(xmlrpccontroller):
@xmlrpc([['string','string']]
def mymethod(self,*p,**kw):
pass
}
注意方法签名中的{{{p,**kw}}。这是为了防止在用户错误获得url时向用户发送一个丑陋的
错误页面。由于我们处理的是编程接口,在编程接口的另一端,当数据发送不正确时,应该对其进行编码以期望出现错误,因此我们可以使
开发人员:
{{{
类myxml(xmlrpccontroller):
@xmlrpc([['string','string']])
def mymethod(self,instr,**kw):
pass
}
===xmlrpc hierarcies===
您可以设置xmlrpccontrollers的层次结构。当您这样做时,
方法名用“.”分隔。这会导致如下情况:
{{{
类subxmlrpc(xmlrpccontroller):
@xmlrpc([['string','array']])
def joinit(self,*p,**kw):
return”。join(p)
class myxmlrpc(xmlrpccontroller):
subpc=subxmlrpc()
@xmlrpc([['int',,“array”]]
def addit(self,*p,**kw):
返回和(p)
}
xmlrpccontroller将
向下查找子控制器,然后在那里调用相应的
方法。
===待办事项列表===
*添加xmlrpcstruct decorator以允许xmlrpcstruct文档显示在
system.method帮助页上。
==安装===
1。将其添加到项目中。这可以通过修改
setup.py来完成。将“tgext.xmlrpc”添加到**安装要求**列表中。
2。在项目中运行{{python setup.py develop}},以安装它。
==usage==
usage非常简单。创建一个控制器,装饰xmlrpc
方法,并将控制器安装到某个地方。这可以通过以下方式实现:
{{{
从tgext.xmlrpc导入xmlrpc controller,xmlrpc
myxmlrpccenter类(xmlrpccontroller):
@xmlrpc([['int','int','int','int','array']],helpstr=“将数字相加”)
def addit(self,*p,**kw):
返回和(p)
}
添加以下行:
{{{
xmlrpc=myxmlrpccenter()
}
如果将其添加到rootcontroller,则可以访问http://localhost:8080/xmlrpc并获取帮助页。您可以向方法“addit”发送
xmlrpc请求,并获得结果。
==详细信息===
===xmlrpc decorator====
>xmlrpc decorator接受两个参数:
*签名列表列表
*将在索引页上显示的帮助字符串,或在为此调用
system.method help时。方法
请注意,签名是列表列表很重要。列表的
元素只是标识有效xmlrpc
数据类型的字符串。您可以在http://en.wikipedia.org/wiki/xml-rpc上查看可接受数据类型的列表
so,有效/无效签名的示例:
*{{{[['string','int']}}<;--有效,接受int,返回string
*{{{{['string','int']}}<;--无效,两个字符串的列表,不是列表列表
===xmlrpc方法===
事实上,您甚至可以更加严格,因为
turbogears方法的一个常见习惯用法是使用这样的代码:
{{{
class myxml(xmlrpccontroller):
@xmlrpc([['string','string']]
def mymethod(self,*p,**kw):
pass
}
注意方法签名中的{{{p,**kw}}。这是为了防止在用户错误获得url时向用户发送一个丑陋的
错误页面。由于我们处理的是编程接口,在编程接口的另一端,当数据发送不正确时,应该对其进行编码以期望出现错误,因此我们可以使
开发人员:
{{{
类myxml(xmlrpccontroller):
@xmlrpc([['string','string']])
def mymethod(self,instr,**kw):
pass
}
===xmlrpc hierarcies===
您可以设置xmlrpccontrollers的层次结构。当您这样做时,
方法名用“.”分隔。这会导致如下情况:
{{{
类subxmlrpc(xmlrpccontroller):
@xmlrpc([['string','array']])
def joinit(self,*p,**kw):
return”。join(p)
class myxmlrpc(xmlrpccontroller):
subpc=subxmlrpc()
@xmlrpc([['int',,“array”]]
def addit(self,*p,**kw):
返回和(p)
}
xmlrpccontroller将
向下查找子控制器,然后在那里调用相应的
方法。
===待办事项列表===
*添加xmlrpcstruct decorator以允许xmlrpcstruct文档显示在
system.method帮助页上。