跳转到主要内容

实验性Python-Sharepoint连接器

项目描述

zopyx.sharepoint

zopyx.sharepoint 允许通过Sharepoint SOAP API (针对Microsoft Sharepoint Services 3.0进行测试) 与Sharepoint 列表 进行交互。

功能

  • 检索Sharepoint列表定义

  • 检索所有列表项

  • 添加列表项

  • 删除列表项

  • 更新列表项

  • 通用查询

  • 通过NTLM进行身份验证

用法

为了连接到Sharepoint,您需要以下参数

  • 列表WSDL URL

  • 您想要交互的相关Sharepoint列表的ID/名称

  • 有效的Sharepoint用户名和密码(拥有相关权限)

API使用

连接到sharepoint

为了连接到Sharepoint,您需要导入Connector方法,该方法是一个工厂,返回一个ListEndPoint实例

> from zopyx.sharepoint import Connector
> url = 'http://sharepoint/bereiche/onlineschulungen/'
> username = 'YourDomain\\account'
> password = 'secret'
> list_id = '60e3f442-6faa-4b49-814d-2ce2ec88b8d5'
> service = Connector(url, username, password, list_id)

Sharepoint列表模型内省

列表架构的内部结构通过ListEndPoint实例的model属性可用

> fields = service.model

列表的主键通过primary_key属性公开

> primary_key = service.primary_key

所有必需字段名称和所有字段的列表通过

> all_fields = service.all_fields
> required_fields = service.required_fields

列表项删除

为了通过主键值删除列表项,您可以使用deleteItems()方法

> result = service.deleteItems('54', '55')
> print result
> print result.result
> print result.ok

结果对象是 ParsedSoapResult 的一个实例,提供了一个标志 ok(True|False),指示操作的总体成功或失败。可以通过迭代 ParsedSoapResult 实例的 result 属性来获取单个错误代码。

更新列表项

您可以通过向 updateItems() 传递一个或多个字典来更新现有的列表项。每个字典必须包含相关主键的值(在本例中是 ID 字段)

> data = dict(ID='77', Title=u'Ruebennase', FirstName=u'Heinz')
> result = service.updateItems(data)
> print result
> print result.result
> print result.ok

updateItems() 不会抛出任何异常。相反,您需要检查结果对象的 ok 属性,并在必要时检查 result 属性的各个项

# update an item (non-existing ID)
> data = dict(ID='77000', Title=u'Becker')
> result = service.updateItems(data)
> print result
> print result.result
> print result.ok

向列表添加项

addItems() 方法与 updateItems() 方法类似,但不需要传递主键(因为在客户端未知)。将项添加到列表后分配的主键值应可通过结果对象获取

> data = dict(Title=u'Ruebennase', FirstName=u'Heinz')
> result = service.addItems(data)
> print result
> print result.result
> print result.ok
> print 'assigned ID:', result.result[0]['row']._ows_ID

检索单个列表项

getItem() 将通过其主键值返回单个项

> data = service.getItem('77')

检索所有列表项

getItems() 将返回所有列表项(请谨慎使用!)

> items = service.getItems()

通用查询API

query(**kw) 可以用于查询列表,其中每个子查询都必须执行精确匹配。所有子查询都使用逻辑与组合

> items = service.query(FirstName='Heinz', Title='Becker')

结果以 Python 列表的形式返回,其中包含字典化的列表项。所有查询参数必须表示列表的有效字段名(否则会引发 ValueError 异常)。

为了在所有查询参数上执行子串搜索,您可以传递 mode='contains' 参数。要指定所有查询参数的前缀搜索,请使用 mode='beginswith'

视图支持

zopyx.sharepoint 支持 Sharepoint 的列表视图。您可以选择一个默认视图用于查询 Sharepoint,如下所示

> service.setDefaultView('{D9DF14B-21F2-4D75-B796-EA74647C30C6'}')

或者您可以选择每个查询的视图,通过传递视图名称作为 viewName 方法参数(适用于 getItem()getItems()query()

> items = service.getItems(viewName='{D9DF14B-21F2-4D75-B796-EA74647C30C6'}')

命令行使用

zopyx.sharepoint 随附一个小的 sharepoint-inspector 命令行实用程序

sharepoint-inspector --url <URL> --list <LIST-ID-OR-NAME> --username <USERNAME> --password <PASSWORD> --cmd <CMD>

其中 <CMD> 是 fieldsitems

需求

  • Python 2.4 或更高版本(不支持 Python 3.X)

测试

  • 在 Python 2.4-2.6 上进行了测试

  • suds 0.4.1 beta 或 suds trunk 的检出(https://fedorahosted.org/suds/)。suds 0.4.0 是不充分的!

  • python-ntlm 1.0

  • Microsoft Sharepoint Services 3.0 API

作者

为 Haufe-Lexware GmbH,德国弗莱堡编写。

ZOPYX Limited
Andreas Jung
Charlottenstr. 37/1
D-72070 Tuebingen
www.zopyx.com

变更日志

0.2.0 - 2011/01/07

  • 代码分支

0.1.9 - 2011/06/03

  • 修复了一些文档错误

  • 在连接时添加了日志记录

0.1.8 - 2011/05/30

  • 修复了异常中的参数使用不当问题

0.1.7 - 2011/05/24

  • 应用了包含一些小修复的第三方补丁

0.1.6 - 2011/05/04

  • 改进了连接错误处理

  • 自动将 WSDL URL 前缀添加到 Sharepoint URL 中

  • 修复了 getItems() 中空结果集的问题

0.1.5 - 2011/02/23

  • 添加了 checkin_file()、checkout_file()

  • 现在可以通过 Connector() API 配置连接超时

  • 添加了 setDefaultView() API

0.1.4 - 2011/02/22

  • 通过 query() API 支持精确|子串|前缀搜索

0.1.3 - 2011/02/22

  • 添加了通用的 query() API

0.1.2 - 2011/02/21

  • 正确实现了 getItem() 方法

0.1.1 - 2011/02/18

  • 一些小修复

  • 更新了文档

0.1 - 2011/02/17

  • 初始发布

项目详情


下载文件

下载适合您平台的文件。如果您不确定该选择哪个,请了解更多关于 安装包 的信息。

源分发

zopyx.sharepoint-0.2.0.zip (19.9 kB 查看哈希值)

上传时间

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页