文章
Jeff Liu · 十月 27 阅读大约需 6 分钟

IRIS 2021 技术文档 First Look 34 技术概要:InterSystems IRIS Native API for Python

 

技术概要:InterSystems IRIS Native API for Python

 

目录

技术概要: InterSystems IRIS Native API for Python 1

  1. InterSystems IRIS 存储结构简介 1
  2. 探索 IRIS Native for Python 1
    1. 用前须知 2
    2. 安装 Native API 包 2
    3. IRIS Native 应用程序 2
    4. 运行练习 3
    5. 确认管理门户(Management Portal)中的变更 3
  3. 了解有关 IRIS Native 的更多信息 3

技术概要:InterSystems IRIS Native API for Python

本技术概要(First Look)指南解释了如何使用 InterSystems IRIS Native 功能从 Python 应用程序访问 InterSystems IRIS® globals。IRIS Native 还允许您运行 ObjectScript 方法、函数和例程。在本文中,您将首先连接到 InterSystems IRIS。然后您将在 InterSystems IRIS 中设置和检索一个 global 节点的值,并在另一个 global 节点上进行迭代。您还将调用 InterSystems IRIS 类方法。所有这些活动都将在 Python 3 应用程序中执行。

为了让您体验 IRIS Native,而又不陷入细节的困境,本次探索特意设计得很简单。这些活动被设计成只使用默认设置和功能,这样您就可以熟悉功能的基本原理,而不必处理那些离题或过于复杂的细节。当您把 IRIS Native 引入您的生产系统时,您可能需要做一些不同的事情。请确保不要把这种对 IRIS Native 的探索与真实的情况相混淆! 本文档末尾提供的参考资料将使您对在生产中使用 IRIS Native 的情况有一个很好的了解。

要浏览所有的技术概要(First Look),包括可以在 InterSystems IRIS 免费的评估实例上执行的那些,请参见 InterSystems First Looks(《InterSystems 技术概要》)。

InterSystems IRIS 存储结构简介

InterSystems IRIS 提供了一种易于使用的方法来将数据存储在持久化多维数组中。global 是存储在物理 InterSystems IRIS 数据库中的命名多维数组。在应用程序中,globals 到物理数据库的映射基于当前命名空间,命名空间提供一个或多个物理数据库的逻辑统一视图。例如,要使用一个名为* ^Settings* 的 global 将值 "Red "与键 "Color "关联起来,请使用 InterSystems IRIS Basics:Connecting an IDE(《InterSystems IRIS 基础: 连接一个 IDE》)中的为您的实例描述的程序打开 InterSystems 终端(InterSystems Terminal),并输入以下代码:

set ^Settings("Color")="Red"

您可以利用 globals 的多维特性来定义一个更复杂的结构:

set ^Settings( "Auto1 ", "Properties ", "Color ") = "Red " set ^Settings( "Auto1 ", "Properties ", "Model ") = "SUV " set ^Settings( "Auto2 ", "Owner ") = "Mo "

set ^Settings( "Auto2 ", "Properties ", "Color ") = "Green "

有关 globals 的更多信息,请参见 Using Globals(《使用 globals》)。

探索 IRIS Native for Python

现在,您已经准备好实验 IRIS Native 了。下面的简短演示向您演示了如何在一个简单的 Python 应用程序中使用 IRIS Native。

想试试 InterSystems Native API for Python 的在线视频演示吗?请查看 Python QuickStart(Python 快速入门)!

探索 IRIS Native for Python

用前须知

要使用这个程序,您需要一个正在运行的 InterSystems IRIS 实例和一个使用 Python 3 和 PIP 实用程序以及您喜欢的 Python IDE 的系统。(在 Windows 系统中,确保 Python 解释器包含在您的 PATH 环境变量中)。您对 InterSystems IRIS 的选择包括多种类型的已授权的和免费的评估实例;该实例不需要由您正在工作的系统托管(尽管它们必须相互具有网络访问权限)。关于如何部署每种类型的实例的信息(如果您还没有可使用的实例),请参见 InterSystems IRIS Basics: Connecting an IDE(《InterSystems IRIS 基础:连接一个 IDE》)中的 Deploying InterSystems IRIS(部署 InterSystems IRIS)。使用同一文档中的 InterSystems IRIS Connection Information(InterSystems IRIS 连接信息)和 Python IDE 中的信息,将 Visual Studio 连接到您的 InterSystemsIRIS 实例。

安装 Native API 包

在运行示例 Python 程序之前,您需要使用 PIP 包管理器来安装 irisnative 包,您可以从 https://github.com/intersystems/quickstarts-python/tree/master/Solutions/nativeAPI_wheel 下载。

如果您的本地系统上安装了 InterSystems IRIS,wheel 文件已经安装在子目录 install-dir dev python 中,其中 install-dir 是 InterSystems IRIS 实例的安装目录, Python 3 包的名称 (.whl 文件) 包括 cp34。

要安装 wheel 文件,在命令行中输入命令 pip install irisnative-1.0.0 whl file,其中 irisnative-1.0.0 whl file 是您的 Python 版本和操作系统对应的 wheel 文件。例如,如果您在 Linux 上使用 Python 3,请使用 irisnative-1.0.0-cp34-abi3-linux_x86_64.whl。

IRIS Native 应用程序

现在您已经创建了项目,接下来您将创建一个小的应用程序,演示 Native API 的一些功能。

  1. 在您的 IDE 中,在 IRISNative 目录中创建一个新的源文件,将该文件保存为 IRISNative.py。
  2. 将以下代码粘贴到 IRISNative.py 中,将 InterSystems IRIS 实例的连接信息替换为 kwargs 中的值。您可以指定所示的 USER 命名空间,也可以选择在实例上创建的另一个命名空间:

import irisnative

# Modify connection info based on your environment ip = "127.0.0.1 "

port = 1972 namespace = "USER " username = " _SYSTEM " password = "SYS "

# create database connection and IRIS instance

connection = irisnative.createConnection(ip,port,namespace,username,password) dbnative = irisnative.createIris(connection)

print( " [1. Setting and getting a global ] ") # setting and getting a global

# ObjectScript equivalent: set ^testglobal( "1 ") = 8888 dbnative.set(8888, "testglobal ", "1 ")

# ObjectScript equivalent: set globalValue = $get( ^testglobal( "1 ")) globalValue = dbnative.get( "testglobal ", "1 ")

print( "The value of testglobal is ", globalValue) print()

print( " [2 Iterating over a global ] ") # modify global to iterate over

# ObjectScript equivalent: set ^testglobal( "1 ") = 8888 # ObjectScript equivalent: set ^testglobal( "2 ") = 9999 dbnative.set(8888, "testglobal ", "1 ")

dbnative.set(9999, "testglobal ", "2 ")

Iter = dbnative.iterator( "testglobal ") print( "walk forwards ")

了解有关 IRIS Native 的更多信息

for subscript, value in Iter.items():

print( "subscript= {}, value={} ".format(subscript, value)) print()

print( " [3. Calling a class method ] ") # calling a class method

# ObjectScript equivalent: set returnValue = ##class(%Library.Utility).Date(5) returnValue = dbnative.classMethodValue( "%Library.Utility ", "Date ", 5) print(returnValue)

# close connection connection.close()

示例代码分为三个部分:

  1. 第一部分展示了如何设置一个 global 的值以及稍后如何检索它。这部分里面执行的命令等同于 ObjectScript 的 SETGET 命令。
  2. 第二部分展示了如何迭代 global 的子节点,类似于 ** $ORDER** ObjectScript 函数。
  3. 第三部分展示了如何使用 IRIS Native 从您的 Python 应用程序调用 ObjectScript 类方法。

注意: ObjectScript中的 Globals 以插入符号( ^)开头。在使用 InterSystems IRIS Native API 的 Python 应用程序中,这不是必需的。

运行练习

现在您已经准备好运行演示应用程序了。如果示例执行成功,您应该会看到带有示例代码结果的打印输出:

[1. Setting and getting a global ] The value of testglobal(1) is 8888

[2.Iterating over a global ] walk forwards

subscript=1, value=8888 subscript=2, value=9999

[3. Calling a class method ] Jan 30, 2018

确认管理门户(Management Portal)中的变更

接下来,使用以下程序在管理门户(Management Portal)中确认您的结果:

  1. 使用 InterSystems IRIS Basics:Connecting an IDE(《InterSystems IRIS 基础:连接一个 IDE》)中为您的实例描述的 URL,在浏览器中打开您的实例的管理门户(Management Portal)。
  2. <span id="3_Learn_More_About_IRIS_Native" class="anchor"></span>如果您不在代码指定的命名空间中,请切换到该命名空间。
  3. 导航到 Globals 页面(System Explorer(系统资源管理器) > Globals)。您应该会看到示例代码中创建的 testglobal global。点击 View(查看)来查看其内容。您应该会看到 global 的两个节点: ^testglobal(1) = 8888 和

^testglobal(2) = 9999。

了解有关 IRIS Native 的更多信息

有关 IRIS Native、globals 和 InterSystems IRIS 的更多信息,请参见:Using the Native API for Python(《使用 Native API for Python》)

了解有关 IRIS Native 的更多信息

Using Globals(《使用 Globals》)

00
1 0 0 13
Log in or sign up to continue