本文介绍如何设置Python环境,以便通过用于Python的 Dataverse SDK 访问 Dataverse。 然后,它显示了一些简单的编码示例来帮助你入门。
先决条件
- 对 Dataverse 环境的读/写访问权限。 可以使用 试用环境。
- 为应用程序配置的 OAuth 身份验证。
- 激活的 Python 3.10+ 环境。
- Pandas 版本 2.0.0+。
- 对 pypi.org 的网络访问以获取 SDK 包。
安装 SDK 和依赖项
在终端窗口中运行以下命令。 此命令从 pypi.org 包安装 SDK 的最新稳定版本。
pip install PowerPlatform-Dataverse-Client
运行以下命令,从项目的GitHub源而不是包安装 SDK。 从 PyPi 包或源安装客户端,但不能同时安装这两者。
git clone <https://github.com/microsoft/PowerPlatform-DataverseClient-Python.git>
cd PowerPlatform-DataverseClient-Python
pip install -e .
将 Claude 技能全局安装
若要改进Python开发体验,可以选择在从包安装 SDK 时安装两个 Claude Skills。
pip install PowerPlatform-Dataverse-Client && dataverse-install-claude-skill
Important
从源安装时会自动加载技能。
以下列表中描述了这两种技能:
-
dataverse-sdk-use:应用在应用程序中使用 SDK 的最佳做法。 -
dataverse-sdk-dev:提供有关 SDK 本身的开发和贡献的指导。
这些技能适用于 Claude Code CLI 和 Visual Studio Code 扩展。 安装后,Claude 会在处理 Dataverse 操作时自动使用适当的技能。 有关 Claude 技能的详细信息,请参阅 代理技能。 安装完成后,您可以在开发计算机上的.claude/skills/dataverse-sdk-use/SKILL.md和.claude/skills/dataverse-sdk-dev/SKILL.md文件中找到技能定义。
连接到 Dataverse
SDK client 要求提供任意 Azure Identity TokenCredential 实现,以便通过 OAuth 对 Dataverse 进行身份验证。
此代码示例导入 Dataverse 客户端并Azure标识类型,并建立与 Dataverse 环境的连接。 请务必将 URL 中的 myorg 更改为您的环境的正确名称。
from azure.identity import (
InteractiveBrowserCredential,
ClientSecretCredential,
CertificateCredential,
AzureCliCredential
)
from PowerPlatform.Dataverse.client import DataverseClient
# Development options
credential = InteractiveBrowserCredential() # Browser authentication
# credential = AzureCliCredential() # If logged in via 'az login'
# Production options
# credential = ClientSecretCredential(tenant_id, client_id, client_secret)
# credential = CertificateCredential(tenant_id, client_id, cert_path)
client = DataverseClient("https://myorg.crm.dynamics.com", credential)
您可以使用可选的 HTTP 可调参数来自定义连接,以处理连接超时、重试等问题。 通过 DataverseConfig 类访问这些设置。
现已建立到 Dataverse 环境的客户端连接,接下来可以使用 SDK 来处理业务数据、表元数据等。 下一篇文章介绍这些操作的一些示例。
有关详细信息,请参阅 将 OAuth 与 Dataverse 配合使用。
命名空间
PowerPlatform.Dataverse.operations 包包含将 SDK 操作组织到逻辑组中的模块,如下表所述。
| Name | Description |
|---|---|
| client.records | 创建、更新、删除和获取记录(单一查询或分页查询) |
| client.query | 查询和搜索操作 |
| client.tables | 表和列元数据管理 |
| client.files | 文件上传操作 |
| client.dataframe | Pandas 数据框支持 |
| client.batch | 批处理操作 |