涡轮齿轮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帮助页上。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在Java中从本地文件系统导入文件   spring boot如何在Java SpringBoot项目中集成Olingo(Odata)   java查找连续数组中缺少的第k个元素(超过时间限制)   java为什么在mySql中插入1/2行时会得到2/4行   java不能在静态上下文中使用它   File Observer方法的java My onEvent()部分不起作用   java Netty NioSocketChannel在多线程写入时收到中断消息   java将文件夹与父文件夹一起复制   java我的TictaToe代码出了什么问题?如何检查已采取的措施?   java Swing JTable更新   java如何将cordinates查找为int   如何使用selenium和java在firefox中打开新的空选项卡   java Gradle构建输出Jar未运行   java没有GET/WEBINF/jsp/login的映射。jsp